Arduinon ohjelmoiminen C++

Qu4l1ty

Onko mahdollista ohjelmoida Arduinoa C kielellä? Yritin jo Atmel Studiolla ja Visual Studiolla mutta ei vissiin tue Windows kymppiä??? Tuli kokoajan joku virhe asennuksiin.

9

<50

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Haminaattori

      Taisitkin esittää sen argumentin joka voi olla hankala. Ihan uusilla käyttiksillä aluksi voi olla hankaluuksia aluksi, kunnes tarvittavat korjaukset ehditään tehdä. Samoin oli silloin kun Vista tuli. Oli jopa tilanne jossa 32bittinen tais kääntää ja 64bittinen ohjelmoi voi oliko se toisinpäin, mutta vaikeeta se oli.
      Kympinkanssa voi olla ongelmia vähänaikaa joten suosittelen valjastamaan jonkun vanhemmankoneen konrollerikäyttöön. Omassa käytössä "työkalut" löytyvät kolmesta koneesta ja niissä on W2k, XP ja joku 10.jotain ubuntu.

    • kxknzkskzkdkdkk

      saako atmelin työkalut linuxille? sehän voisi olla ratkaisu asentaa linux rinnalle.
      itse ohjelmoin picejä ja se mplabx toimi huonosti windowsissa, mutta linuxissa se toimi täysin ongelmitta.

    • riippuu_arduinosta

      Sehän ei ole sitten enää arduino vaan tavallinen avr. Nuo vanhemmat arduinot erillisellä ftdi_piirillä kävisi tarkoitukseen, uudemmissa usb_ohjain on poltettu siihen arduinopiiriin. Lisäksi tarvitaan erillinen ohjelmointilaite.

    • kyllävarmaan

      Onko sinulla se arduino ide asennettuna, siinähän on integroitu avrdure ja gcc joten luulis onnistuvan puhtaan c:n tai c koodin kääntö.

    • Qu4l1ty

      Onhan se Arduino IDE pyörinyt tuolla kovon sopukoissa jo vuoden, mutta ei siinä mielestäni ole integroitu avrdure eikä gcc.

      • katoppavielä

        Katsoppa hakemisto arduino-xxxx/hardware/tools/avr. Sieltä löytyy WinAVR. WinAVR sisältää avr-gcc (kääntäjän), avrdude (ohjelmoijan), AVR-gdb (debuggerin). Näin ainakin versiossa arduino-0023. Onhan nuo kirjastot kirjoitettu C:llä eikä prosessing-kielellä.


    • laimeaa_on

      Kyllähän tuo onnistuu. Ongelmia tulee kylläkin nopeasti suoritustehon kanssa. Nimittäin c on jo sen verran korkean tason kieli, että siinä on melko paljon ylimääräistä koodia "jotta homma toimisi" - mukana. Esim. periyttämisen voi hetimoilleen unohtaa. Samoin autovarit, ym. tauhkan, joka käyttää dynaamisesti varattua muistia - sitä kun ei ole tarjolla liiemmälti. AVR:ssä kun on flashia pysyväismuistina yleensä runsaasti ja rammia vähän, esim 128k/4k. Sen sijaan jos prosarilla on muistiohjain ja lisätty esim. 32k sram - c alkaa olla jo ihan yes. Tämä tietenkin tarkoittaa arduinon hylkäämistä ja siirtymistä johonkin, missä on esim. mega128. Tuo taitaa olla pienin, jossa vielä järkevän muistiohjain. Niitä SPI-väyläisiä kun voi lähinnä käyttää datapuskureina, kun nopeus ei ole niin kriittistä, latenssi on joka tapauksessa hirveä.

      • Haminaattori

        Ei kait sillä kääntävällä ohjelmalla niin suurta merkistystä. Melkein saman konekielisen "sekamelskan" ne kumminkin tekee. Käyttöön kääntäjä ottaa vain ne osat jotka se tarvitsee ohjelman suorittamisessa. Aikoinaan kokeiltiin muutamaa ohjelmaa ja oli joukossa oikein kaupallinen isoohjelma. Kaikki teki noin sadan tavun sisään viidenkilon kokoisen konekielisen ohjelman. Konekielilistauksessa näkyi selvijä eroja ryhmittelyssä, mutta ajotilanteessa ei eroja havaittu. Kaikki oli tosin GCC-kääntäjiä. Kääntäjäohjelmilla on joskus "huonosti kirjoitettuja" funktioita kirjastoissaan jotka ei osaa tehdä riittävän tiukkaa koodia. Silloin tietenkin funktio kannattaa yrittää kirjoitta itse.

        Se on tietenkin, jos käännettävään ohjelmaan tekee muutoksen. Kaikki kääntät eivät osaa muutoksen alla ollutta kohtaa poistaa vaan kääntävät uudenpätkän edellisen jatkoksi. Turha jää sinne koodinsisään käyttämättömäksi.


      • tämä_nähty

        Itselläni on sellainen näppituntuma, että jos käyttää periyttämistä sulautetuissa ympäristöissä, aiheuttaa samalla n. 100 tavun lisäyksen koodin kokoon. Siispä jos ohjelmassa tekee listan, jossa on 40 alkiota - periytettyjä luokkia siis, on helposti koko muistiavaruus käytetty, koska varaus tapahtuu rammista eli yleensä 2-4k muistista. (Periytetty luokka ei ole mitään muuta kuin structi, jossa on alussa sen isäntä luokan tietoalkiot.) Tietysti tuota voi optimoida. Kuitenkin miettimällä c-tasolla, mitä oikeasti tarvittaisiin ja tekemällä perinteiset structit, päästään parempaan tulokseen. Riippuu tietysti myös siitä, halutaanko tehdä käsitteellistä ajattelua jota helposti ymmärtää, vaiko toimivaa koodia. Useinhan ne ovat sama asia, vaan ei aina.
        Vaikka ei se c:kään mikään autuaaksi tekevä ole. gcc:llä jos käyttää keskeytyksiä on helposti tilanteessa, jossa keskeytyskäsittelijän kutsu vie päälle 50 kellosykliä ennen kuin oma koodi lähtee ajoon. Vähän eri, kuin datakirjassa mainittu luku. Onneksi sen saa sylkäisemään assemblerit ja siitä sitten vaan optimoimaan! ;)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Pupuhuhdasta löytyi lähes sadan kilon miljoonalasti huumeita

      Pupuhuhdasta löytyi lähes sadan kilon miljoonalasti huumeita – neljä Jyväskylän Outlaws MC:n jäsentä vangittu: "Määrät p
      Jyväskylä
      56
      1846
    2. Persut petti kannattajansa, totaalisesti !

      Peraujen fundamentalisteille, vaihtkaa saittia. Muille, näin sen näimme. On helppo luvata kehareille, eikä ne ymmärrä,
      Maailman menoa
      48
      1628
    3. Ei luottoa lakko maahan

      Patria menetti sovitun ksupan.
      Suomen Keskusta
      52
      1564
    4. Nähtäiskö ylihuomenna taas siellä missä viimeksikin?

      Otetaan ruokaöljyä, banaaneita ja tuorekurkkuja sinne messiin. Tehdään taas sitä meidän salakivaa.
      Ikävä
      5
      1507
    5. Sinäkö se olit...

      Vai olitko? Jostain kumman syystä katse venyi.. Ajelin sitten miten sattuu ja sanoin ääneen siinä se nyt meni😅😅... Lis
      Ikävä
      6
      1495
    6. Housuvaippojen käyttö Suomi vs Ulkomaat

      Suomessa housuvaippoja aletaan käyttämään vauvoilla heti, kun ne alkavat ryömiä. Tuntuu, että ulkomailla housuvaippoihin
      Vaipat
      6
      1405
    7. Hyvää yötä ja kauniita unia!

      Täytyy alkaa taas nukkumaan, että jaksaa taas tämän päivän haasteet. Aikainen tipu madon löytää, vai miten se ärsyttävä
      Tunteet
      8
      1306
    8. Lepakot ja lepakkopönttö

      Ajattelin tehdä lepakkopöntön. Tietääkö joku ovatko lepakot talvella lepakkopöntössä ´vai jossain muualla nukkumassa ta
      12
      1281
    9. Revi siitä ja revi siitä

      Enkä revi, ei kiinnosta hevon vittua teidän asiat ja elämä. Revi itte vaan sitä emborullaas istuessas Aamupaskalla
      Varkaus
      4
      1163
    10. Kello on puoliyö - aika lopettaa netin käyttö tältä päivältä

      Kello on 12, on aika laittaa luurit pöydälle ja sallia yörauha kaupungin asukkaille ja työntekijöille. It is past midni
      Hämeenlinna
      4
      1128
    Aihe