Onko mahdollista ohjelmoida Arduinoa C kielellä? Yritin jo Atmel Studiolla ja Visual Studiolla mutta ei vissiin tue Windows kymppiä??? Tuli kokoajan joku virhe asennuksiin.
Arduinon ohjelmoiminen C++
9
<50
Vastaukset
- 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
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 p561846Persut petti kannattajansa, totaalisesti !
Peraujen fundamentalisteille, vaihtkaa saittia. Muille, näin sen näimme. On helppo luvata kehareille, eikä ne ymmärrä,481628- 521564
Nähtäiskö ylihuomenna taas siellä missä viimeksikin?
Otetaan ruokaöljyä, banaaneita ja tuorekurkkuja sinne messiin. Tehdään taas sitä meidän salakivaa.51507Sinäkö se olit...
Vai olitko? Jostain kumman syystä katse venyi.. Ajelin sitten miten sattuu ja sanoin ääneen siinä se nyt meni😅😅... Lis61495Housuvaippojen käyttö Suomi vs Ulkomaat
Suomessa housuvaippoja aletaan käyttämään vauvoilla heti, kun ne alkavat ryömiä. Tuntuu, että ulkomailla housuvaippoihin61405Hyvää 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ä81306Lepakot ja lepakkopönttö
Ajattelin tehdä lepakkopöntön. Tietääkö joku ovatko lepakot talvella lepakkopöntössä ´vai jossain muualla nukkumassa ta121281Revi siitä ja revi siitä
Enkä revi, ei kiinnosta hevon vittua teidän asiat ja elämä. Revi itte vaan sitä emborullaas istuessas Aamupaskalla41163Kello 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 midni41128