HobbyCNC fórum
FTP tárhely: http://cnctar.hobbycnc.hu v0.9.6 Régi HobbyCNC oldal: http://archiv.hobbycnc.hu

Új regisztráció / Átregisztráció a régi fórumról
    
   


Az AVR és lehetőségei...

Rekalaca kezeli! :))

 

Időrend:
Oldal 24 / 25 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   20  21  22  23  24  25   Következő ►  Utolsó ►|

  Fórum főoldal  |  A lap aljára

KisKZ | 6456    2009-03-03 13:29:00 [69]

Akkor most én kérdezek ha így jó:
Az AVR programozását hol tanulhatom meg?
Hol kérdezzek az elkészített példaprogramokkal kapcsolatban?
MIvel közben próbálok magamtól is haladni, így kisebb egyszerű programokat írogatok.
Ezeket hol tudom elővezetni, hogy megkérjem a hozzáértőket, hogy mondják meg hol a hiba és hol a gond.
Rekalaca.
Semmivel nem tudok róla többet mint Te. Egy hete vettem először a kezembe.
Soha nem programoztam C-t, úgyhogy bármilyen hihetetlen és is szeretném megtanulni.
De most Tényleg?
Akkor mondjátok el legyetek szivesek, hogy mit vártok ettől a topictól! Mi az amit megengedhetek magamnak benne?
Mert most már egyáltalán nem értem mi is a topic célja.
Csak bátran! nem vagyok sértődős fajta.

Előzmény: rekalaca, 2009-03-03 13:11:00 [68]


rekalaca | 550    2009-03-03 13:11:00 [68]

Hát most mit csináljak? Egy páran, köztük én is, szeretnénk tanulni az AVR programozást.

Előzmény: svejk, 2009-03-03 13:00:00 [66]


rekalaca | 550    2009-03-03 13:06:00 [67]

Kár, hogy nem lehet altopic: AVR kezdő, AVR haladó, és AVR KisKZ.

Előzmény: rekalaca, 2009-03-03 12:56:00 [65]


svejk | 33038    2009-03-03 13:00:00 [66]

Én ezt nem mertem így leírni .. )

Előzmény: rekalaca, 2009-03-03 12:56:00 [65]


rekalaca | 550    2009-03-03 12:56:00 [65]

Tisztelem becsülöm a lelkesedésedet, de már én is úgy vagyok mint Svejk, kezdem elveszteni a fonalat. Ha megnézed Sneci (4.)hozzászólását, ez topic AVR-ről szól, ami Neked is van. Ezért próbáltam napok óta leválasztani, az elektronika topictól, és nem belerondítani a PIC topicba, nem sikerül. Írtam is Neked ez nem zárja ki,hogy ne lehetne róla írni, de lehetőleg a témához kapcsolódóan. Minden egyéb esetben, Olvasd el a Fórum szabályzatát, aszerint is, úgyhivják, OFF. Lehetőleg minden témát a maga topicjába kell kezelni.
Nincs sértődés, nekem is nehéz szülés volt ez a levél.
Mint tanulótársad írom, ezek után lépésről lépésre, kövessük Sneci Tanár úr leckéit. Lehetőleg.

Előzmény: KisKZ, 2009-03-03 09:24:00 [52]

n/a (inaktív)    2009-03-03 12:36:00 [64]

Az inputPin egy egész típusú változó, értéke kettő. Ezt te állítottad be. Ami meghatározza egy adott pin, vagy tüske kezelésének módját, az a pinMode() funkció hívás. Ennek két paramétere van, az első a pin száma, a másik, hogy miként akarod használni (be vagy kimenet). Alaphelyzetben minden bemenetként van állítva, hogy bekapcsoláskor, RESET -kor ne okozzon ütközést a megépített áramkör egyéb alkatrészeivel.
A többi, az nagyjából úgy van ahogy mondod. Mivel a loop() elég gyorsan végez és ismételten meghívódik, ezért ez a program inkább egy nyolc oldalú elektronikus dobókockát valósít meg, ami akkor áll meg, amikor megnyomod a gombot.

Előzmény: KisKZ, 2009-03-03 12:11:00 [61]


KisKZ | 6456    2009-03-03 12:26:00 [63]

Estig beleeszkábálom még a frekvencia változtatást is. Majd akkor kiteszem ellenőrzésre.

Előzmény: KisKZ, 2009-03-03 12:14:00 [62]


KisKZ | 6456    2009-03-03 12:14:00 [62]

Stimmt. Igy már teljesen OK.
A PWM-eset meg se nézd. Szintaktikai hibák is voltak benne.
Most javítottam rajta és beletettem a kitöltési tényező határérték vizsgálatot is.
Csak innen nem tudok feltölteni sajnos.

Az elektron által ajánlott notepad+ valami szuper cucc!!
Egyből megtaláltam a problémákat a segítségével.
Tényleg sokkal átláthatóbb az egész. Köszönöm!

Előzmény: n/a (inaktív), 2009-03-03 11:58:00 [60]


KisKZ | 6456    2009-03-03 12:11:00 [61]

Szia Molinari!
Köszönöm a segítséget!
Tényleg cikluson belül hagytam az infutpin beállítást.
Ha jól értelmezem akkor az inputpin egyfajta belső változó lenne ami már meghatározza a megadott tűnél, hogy az bemenet lesz?
De ahog ynéztem Te is benne hagytad az INPUT-ként való beállítást, persze már jó helyen és így csak egyszer.
stimmt.
Tényleg, ha HIGH-re állítom az azon is marad addig amig le nem teszem LOW-ra.
A Te vizsgálatodnál a nyomott gomb esetén a ledPin értéke először még a régin marad, így azt lekapcsolod, majd véletlenszerűen kiválasztasz egy másik pin-t és azt felkapcsolod.
Ha nincs benyomva a gomb, akkor eleve kiesik az egész if-en belüli ciklus és ujra olvassa a bemenetet addig amig nem lesz nyomva a gomb.

Ez a program gyakorlatilag véletlenszerűen kiválszt egy LED et, azt fellkapcsolja, az pedig ég.
Ha megnyomom a gombot, akkor ezt leoltja és kiválaszt egy másikat és azt oltja fel a következő gombnyomásig.

Jól értelmeztem?
Köszönöm a segítséget, Igy már tiszta hogy milyen hibák voltak abban amit én készítettem, és látom azt is, hoy miért viselkedett úgy ahogy.

Előzmény: n/a (inaktív), 2009-03-03 11:43:00 [58]


n/a (inaktív)    2009-03-03 11:58:00 [60]

Javítom magamat: Természetesen az inputPin -t definiálni kell, de elég egyszer, csak nem szükséges cikluson belül.

Előzmény: n/a (inaktív), 2009-03-03 11:43:00 [58]


n/a (inaktív)    2009-03-03 11:54:00 [59]

Találsz itt egy csomó mintaprogramot: http://www.wiring.org.co/learning/index.html

Előzmény: KisKZ, 2009-03-03 09:24:00 [52]


n/a (inaktív)    2009-03-03 11:43:00 [58]

Szia KisKZ !
A veletlenLED programoddal kapcsolatban:
1. Az inputPin INPUT -ként definiálása nem szükséges, pláne nem egy cikluson belül.
2. A nyomógomb értékétől teljesen független, hogy milyen szintre akarod állítani a véletlenszerűen kiválasztott LED -et. Vagyis az előzőleg bekapcsoltat ki kell kapcsolni, az újat pedig be. A módosított program: veletlenLED

Előzmény: KisKZ, 2009-03-02 23:14:00 [28]


KisKZ | 6456    2009-03-03 11:02:00 [57]

Sneci!
Azért kérlek ne hagyad abba azt amit elkezdtél!
Az lesz a szép, hogy most eljöttem ebbe a topicba és már itt sem tudok majd kérdezni azokról amiket közben a topic nevét adó cuccon csinálok? Mert mos úgy érzem, mintha hibás lennék és elnyomnálak. Eszemben sincs.
De akkor hol kérdezzek?
Közben megkérhetnélek arra, hogy nézd már meg a könyvtáramban az elektronika alatt az AVR könyvtárban az ujpwm alkönyvtárban találhat uj.c programocskát!
A 13 tűt szeretném benne mint kimenetet használni, és egy rákötött LED-et villogtatni.
A kimeneten PWM szerű jeleket akarok közvetíteni.
Van két kapcsolóm bekötve a 2-es és a 3-as tűre.
Azt akarom elérni, hogy ha az egyiket nyomom meg, akkor a "kitöltési tényező" növekedjen, ha a másikat akkor pedig csökkenjen.
A gondom az, hogy ebben az állapotában, ha feltöltöm a programot az AVR-re, és nem nyomom be egyik gombot sem, a LED villog, de egyre rövidebb ideig.
Vagyis a T2 értéke folyamatosan csökken.
Mintha a máodik IF utasításhoz tartozó blokk, anélkül is elvégződne, hogy a hozzá tartozó gomb be lenne nyomva.
További infó még, hogy ahogy azt lentebb már írtam, a programban nem foglalkoztam még annak a vizsgálatával, hogy a T2 értéke átlépi-e a teljes gerjesztés (TPWM) értékét, vagy kevesebbé válik-e mint 0.
Az majd később.

Előzmény: sneci, 2009-03-03 10:16:00 [55]


KisKZ | 6456    2009-03-03 10:50:00 [56]

El is indultam az erdőbe.....
Húú de sűrű sötét ez az erdő...

Előzmény: sneci, 2009-03-03 10:16:00 [55]


sneci | 1763    2009-03-03 10:16:00 [55]

A kontroller adatlapjában találsz ezekre a kérdésekre választ.

Előzmény: KisKZ, 2009-03-03 10:11:00 [54]

KisKZ | 6456    2009-03-03 10:11:00 [54]

Hátha lesz végre egy válasz is a kérdésekre.
Itt egy tiszta kérdés (remélem):
Alapban egy utasítás végrehajtása mekkora időt emészt fel az AVR esetében?
Ezt (és a sebességgel kapcsolatos további infókat) honnan tudhatom meg?


KisKZ | 6456    2009-03-03 09:28:00 [53]

Még egy valamit:
Még mielőtt valaki megbotránkozna a PWM megnevezésen a lenti programmal kapcsolatban.
Ez csupán azért van mert egy PWM jellegű jelsorozat kiadására akarom rávenni a boardot.
Persze ez nem használható semmire, hiszem ilyen időzítésnek semmi hhasznát nem venné az ember, a másik pedig az, hogy eleve van a boardonilyen kimenet 6 is.
De a programozás szempontjából egy megoldandó "kezdő" feladatnak jó, ha létre akarok hozni egy ilyen jelalakot, úgy hogy változtathatom a kitöltési tényezőt, majd később pedig a frekit is. Ez utóbbi még nincs benne!


KisKZ | 6456    2009-03-03 09:24:00 [52]

Hát Svejk, én az elektronikával, magával vagyok így.
De most elhatároztam, hogy megerőszakolom magam és addig ütöm a kobakomat, amig valami bele nem megy.
A két szálért bocsánat, nekem egy AVR-em van, azt próbálom a példák segítségével felderíteni.
Ha kéznél van és ki is tudom próbálni azt hiszem az hasznosabb ha ezt használom és kérdezek vele kapcsolatban, mint ha egy olyannal próbálkozok amit csak virtualle tudok foglalkozni.
De azt hiszem ennyi multitaszk belefér.

Előzmény: svejk, 2009-03-03 08:24:00 [49]


svejk | 33038    2009-03-03 08:28:00 [51]

Látjátok már is elvesztettem a fonalat )


svejk | 33038    2009-03-03 08:27:00 [50]

Bocsi, most itt két szálon, Sneci és Elektron-KisKZ vonal megy??
mert csak kapkodom a fejem..


svejk | 33038    2009-03-03 08:24:00 [49]

Akár hiszed-akár nem, én önállóan még egy led villogtatót sem tudnék megírni
Egy kisebb kész progin már úgy hogy eligazodok, esetleg változtatni is tudom saját ízlésemre , de ennyi...
Egyszerűen nem tudom elkapni az induló fonalat, rákapni az ízére.
Pedig nep mint nap találkozok mikrovezérlőkkel és ismerem a szinte korlátlan lehetőségeket.

Tök hülye vagyok ezekhez, ezért is örültem Sneci segítrőkészségének.

Előzmény: rekalaca, 2009-03-02 22:52:00 [26]


KisKZ | 6456    2009-03-03 00:26:00 [48]

Viszont én lépek.Holnap (ma) sok melóm lesz.
Szia és jó éjt!


KisKZ | 6456    2009-03-03 00:24:00 [47]

jó ötlet.
Azt nézem még indig nem biztos, hogy megvan a hiba....
Egy kisit rendszetem a dolgot most, de a boadrot már régen szétkaptam.
Csak holnap tudom tesztelni, hogy változott-e valami. Késő van. Lassan már magam sem tudom, hogy változtattam-e. Mindenesetre kiteszem újra az előző alkönyvtárba, de ujra néven.
Ha van kedved nézd meg!
Már ott is van, uj.c néven

Előzmény: elektron, 2009-03-03 00:18:00 [45]


elektron | 15859    2009-03-03 00:20:00 [46]

Most már jó ? Küldd át emailbe a progit, akkor jobban meg tudom nézni, vagy a tárhelyre tedd be. Onnan letöltöm.


elektron | 15859    2009-03-03 00:18:00 [45]

Most ha lenne nekem is egy arduinó bedugva csak átküldenéd a programot és ki tudnám próbálni. Abban az arduinóvan nincsen szimuláció, hog y a képernyőn is látsazik, hog y a lednek mit kellene mutatni. Írjál be egy olyan kódot is, hogy lenyomáskor világítson valamelyik másik led, hogy lássad, egyáltalán reagál e a benyomott gombodra.

KisKZ | 6456    2009-03-03 00:17:00 [44]

köszönöm elektron.
Így már látszik a gond.
Erre akartál kilyukadni?
Tényleg jó ez a notepad++

Előzmény: Laslie, 2009-03-03 00:07:00 [42]


KisKZ | 6456    2009-03-03 00:09:00 [43]

Csak hogy pontosítsunk:
A gombokkal a T2 értékét növelem (ez a PWM-nél a high szakasz), vagyis nő a teljes gerjesztésből általa elvett hely, másképpen a teljes gerjesztéshez viszonyított aránya nő. Ez az arány pedig a kitöltési tényező ugye.

Előzmény: elektron, 2009-03-02 23:47:00 [39]


Laslie | 7674    2009-03-03 00:07:00 [42]

Tőccsétek má le ezt a progit. Ha megvolt az install akkor fent a "nyelv" opcióba benézni.
NOTEPAD++

Nekem bejön.....


KisKZ | 6456    2009-03-03 00:05:00 [41]

Inkább megnéztem az eredeti button példát, és abban azt látom, hogy amikor nincs benyomva a kapcsoló, (vagyis szakadás van nála) akkor high a jelszint a vizsgált tűn.


KisKZ | 6456    2009-03-02 23:57:00 [40]

Várj!
Az csupán annyit csinál, hogy az egyszer megadott teljes gerjesztési időből (most már hagy hívjam így) kivonja a T2 értéket.
Ezzel beállítom azt, hogy mennyi ideig legyen majd low a kimenetem.
Ez mind a kettő esetben így kell hogy legyen!
A gond az, hogy a kapcoslók benyomása nélkül is csökken a T2 értéke.
De nem tudom hogy miért.
Szóval valahol máshol van a bibi azt hiszem.
A kapcsolókat most néztem meg és amikor benyomom Őket akkor zárnak.
Má az alapdolgokban sem vagyok biztos.
Ha nyitva van a kapcsoló akkor azon a tűn amelyikről a lejövő vezetéket szakítom meg azon jel van? Mikor is van jel egy kimeneten? Ha közte és a földje között feszültésgkülönbség van ugye? Az a high?
A fene enné meg. Már teljesen összezavarodtam megint.

A változók deklarálásánál a magyarázószövegben helytelenül szerepel a T1 és T2. Azoknak sorrendben T2-nek és T3 nak kellene lenniük. Ez a hiba csak az oldalsó magyarázó szövegben van. A deklarációban helyesen szerepelnek.

Előzmény: elektron, 2009-03-02 23:47:00 [39]


elektron | 15859    2009-03-02 23:47:00 [39]

T3 = TPWM - T2;

Ez a hibája, mind a két helyen - jel van, holott az egyiknáél + jel kell, mikor növeled az értéket.

Előzmény: KisKZ, 2009-03-02 23:14:00 [28]


KisKZ | 6456    2009-03-02 23:45:00 [38]

egy pillanat. Közben feltettem a másik, előbbi kérdésem alapját képező programot is.

A hiba?
Valahol az IF környékén lesz...

Az if az utána következő vizsgálatot ugye megcsinálja és ha annak az értéke igaz, akkor a következő blokkban lévőket végrehajtja.

lehetséges betenni egy else részt is ami azt a blokkot foglalja magában amit akkor kell elvégezni, ha az első vizsgálat hamissal jön vissza.
De ez most itt nincs.

VAlahol itt van a bibi de nem tudom még hol. Valamiért mindenképpen elvgzi a második if után következő blokkban lévőket.

Elmondod?

Előzmény: elektron, 2009-03-02 23:35:00 [34]


elektron | 15859    2009-03-02 23:44:00 [37]

Itt egy fejlesztő környezet C-hez, Dev-C++ a neve:

Dev-C++ C++ nyelvi fejlesztőkörnyezet


sneci | 1763    2009-03-02 23:39:00 [36]

Nem megy:(

Előzmény: sneci, 2009-03-02 23:38:00 [35]


sneci | 1763    2009-03-02 23:38:00 [35]

Sajnos a html formázónak külön meg kell mondani, hogy ezt hagyja meg eredetiben. Nem valószínű, hogy a fórummotor megeszi, de megpróbálom:

<code>
/*
* Formázás próba
*/

int tu; // kimenő pin változója
// (a tű az nem más mint a pin)
char buf; // buffer

void main(void)
{
int i; //ciklus változó
char *p; //buffer pinter

for (i=0, p=buf; i<sizeof(buf); ++i)
{
*p++ = 'a'
}
}
</code>

elektron | 15859    2009-03-02 23:35:00 [34]

Megvan a hiba ? Én már látom mi baja van.

Előzmény: KisKZ, 2009-03-02 23:33:00 [33]


KisKZ | 6456    2009-03-02 23:33:00 [33]

VAlahogy így nézekk ki nálam is! Még ha nem is enyire szépen, de szebben mint itt lenn.

Előzmény: elektron, 2009-03-02 23:29:00 [31]


KisKZ | 6456    2009-03-02 23:33:00 [32]

Az Arduino saját szerkesztőjével.
De hiába. Ha átemelem ide a formázás eltűnik.

Tényleg tudnátok ajánlani a tanuláshoz valami C környezetet és egy jó szerkesztőprogramot?
A C-ből létezik olyan amelyet nem kell installálni?

Feltöltöttem a könyvtáram alatt az elektronika alkönyvtár, az alatt AVR és az abban szereplő egyetlen programocska.


elektron | 15859    2009-03-02 23:29:00 [31]

Valahogy így:


elektron | 15859    2009-03-02 23:23:00 [30]

Miben szerkeszted, ezt ?Így összemosódva a sorokat kín olvasni is. Melyik programot használod ?

Tedd fel letölthetőre, a tárba, onnan áttöltve és a normális szerkesztőjében megnézve könnyebb mgtalálni mi a baja, mint bből visszarrendezni.

Van automatikus formázó funkció is az ilyen programokban, azzal szép formára hozhatod automatikusan.

Előzmény: KisKZ, 2009-03-02 23:16:00 [29]


KisKZ | 6456    2009-03-02 23:16:00 [29]

Kérlek ne röhögjetek ki! Tudom nem így kellene kinéznie egy C programnak, de valahol el kell kezdeni.


KisKZ | 6456    2009-03-02 23:14:00 [28]

Na akkor itt a következő fejtörő:
Csináltam egy kicsiny programocskát amivel ugymond kvázi PWM jelet tudok kitenni az egyik tűre. Természetesen ez nem PWM csupán olyan jellegű jel lenne.
Van két kapcosló amelyeket megnyomva tudom állítani a "kitöltési tényezőt". Az egyikkel csökkentem, a másikkal növelem,
Tudom alapvető ismereti problémáim vannak és a C-t sem ismerem, de mégis megpróbáltam amolyan ŐsBASIC jelleggelösszeütni valamit rá.
Mivel probléma adódott, így nem haladtam vele tovább és nem tettem bele azt a vizsgálatot, hogy a kitöltési tényező ne léphessen 0% alá, vagy 100% felé.
Előbb azt szeretném tudni, hogy mit baltázok el!
Ha feltöltöm a boardra és elindítom, a LED bekapcsolt állapotának ideje körről körre csökken. Pedig nincs benyomva az egyik kapcsoló sem. Aztán természetesen eléri a 0 értéket és ezután elkezd folyamatosan világítani szegénke.
Hol a hiba? Itt a forrás:
"....
/*
* Kvazi PWM
* jel generalasa
* digitalis kimeneten.
*/
int tu = 13; // a kimeneti tu valtozoja
int inp_pl = 2; // kitoltesi tenyezo csokkento gomb
int inp_min = 3; // kitoltesi tenyezo novelo gomb
int TPWM = 1000; // gerjesztes kezdeti erteke
int T2 = 500; // T1 kezdeti erteke
int T3; // T2 ertekenek szamitasa
int val_1 = 0; // 1 es gomb bemeneti valtozoja
int val_2 = 0; // 2 es gomb bemeneti valtozoja
void setup()
{
pinMode(tu, OUTPUT); // kimeneti tu deklaralasa
pinMode(inp_pl, INPUT); // kitoltesi tenyezo emelo gomb deklaralasa
pinMode(inp_min, INPUT); // kitoltesi tenyezo csokkento gomb deklaralasa
}
void loop()
{
val_1 = digitalRead(inp_pl);
if (val_1 == LOW)
{
T2 = T2 + 50;
T3 = TPWM - T2;
}
val_2 = digitalRead(inp_min);
if (val_2 == LOW)
{
T2 = T2 - 50;
T3 = TPWM - T2;
}
digitalWrite(tu, HIGH);
delay(T2);
digitalWrite(tu, LOW);
delay(T3);

}...."


sneci | 1763    2009-03-02 23:09:00 [27]

Akkor legyen ATTiny2313, az később is jó lesz valamire:) Abban már több eszköz van.

Előzmény: svejk, 2009-03-02 21:37:00 [25]


rekalaca | 550    2009-03-02 22:52:00 [26]

Azért a 11-es hozzászólásod alapján Te se legyél ennyire szerény.
Mit ajánlasz az induló készlethez: 13A, 2313, és még milyen proci. és kb darabszám ,hogy egyszerre rendeljek. Egyébb van.

Előzmény: svejk, 2009-03-02 21:37:00 [25]


svejk | 33038    2009-03-02 21:37:00 [25]

Na, ennek szívből örülök!!
Akkor elfogadod akár a "nagyokos" szerepét is?
Vagyis hogy ne legyen még véletlen se pejoratív inkább a Tanár Úr szerepét.
A francba, hogy pont attiny13-am nincs itthon..

Előzmény: sneci, 2009-03-02 17:49:00 [20]

KisKZ | 6456    2009-03-02 20:43:00 [24]

Milyen frekvencián fut egy loop?


KisKZ | 6456    2009-03-02 20:38:00 [23]

Sziasztok!
Átírtam egy kicsit a button példafilet.
Az alap programhoz képest annyit tettem, hogy a 3-tól 10-es digitális tűket(hogyan hívják ezeket hivatalosan?) egyenként felkötöttem egy-egy LED-re. mindegyiket kimenetre állítottam.
A cél az lett volna, hogy amikor megnyomom a gombot, véletlenszerűen válassza ki a board az egyik tűt, és arra küldjön ki egy jelet, gyújtsa fel a led-et.
az első alkalommal még nem tettem delay-t, és a gomb megnyomásakor látszólag mindegyik LED világított.
Hogy jobban láthassam, betettem egy-egy delayt a le és a felkapcsolás után.
Ekkor sem egészen úgy működött ahogy gondoltam.
Nem szekvenciálisan dolgozza a kapcsoló jeleit, hanem egy kimenet kiválasztása és meggyújtására adott parancs után má rlép is tovább és ujabb loopba kezd. Ennek az eredménye az, hogy ha nem folyamatosan nyomom a kapcsolót egyszerre több LED is éghet. Ha folyamatosan nyomom, előbb utóbb a teljes LED-sort lefedi a felkapcsolás és a fényentartás, így az egész sor ég. Ha elengedem, véletenszerű ( a véletlenszám generátor által megadott) sorrendben szépen elalszanak.
Valahogy legalábbis így értelmezem.
Valaki elmondaná, hgy tényleg mi is történik?
Itt a módosított programocska:
"
int tu;
int ledPin; // choose the pin for the LED
int inputPin = 2; // choose the input pin (for a pushbutton)
int val = 0; // variable for reading the pin status

void setup() {
for (tu = 3; tu <12; tu++)
{
pinMode(tu, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare pushbutton as input
}
}

void loop(){
ledPin = random(3,11);
val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, LOW); // turn LED OFF
delay(50);
} else {
digitalWrite(ledPin, HIGH); // turn LED ON
delay(50);
}
}"


elektron | 15859    2009-03-02 18:28:00 [22]

Vannak különböző területei a megoldásoknak:

- használt programnyelv, C, Basic, Pascal , Assembly
- használt fejlesztő környezet AVR Studio, MPLAB, stb.
- hozzáférhető és érthető leírások
- elektronikai ismeretek

- processzor ismeretek, hardver ismerete, tudása
- ártényező

- megoldandó feladat milyensége..

Ezek tükrében célszerű kiválasztani, hogy mit mivel akarunk, tudunk megcsinálni, és mennyi idő és pénz befektetésésvel.

Érdemes egy csoportra koncentrálni, és azt alaposan megismerni, úgy processzorfajtában, mint használt nyelvbe is.


KisKZ | 6456    2009-03-02 18:02:00 [21]

Ezt abba ne hagyd!!!!

Előzmény: sneci, 2009-03-02 17:49:00 [20]


sneci | 1763    2009-03-02 17:49:00 [20]

Én avr-ezek, erre álltam rá. De azért a pic-et is olvasom.
És itt ellenkeznék egy kicsit elektronnal, mert ha C akkor legyen C, és ne egy header fájlban magyarított kereszt nyelv. Hogy miért? Mert az ember mások programjából tanulhat a legtöbbet.
Márpedig a világ többi részén nem fognak nekünk magyarított szabályokat alkalmazni. Ha megtanuljuk magyarul a C-t, akkor megint magunkra vagyunk utalva.

A nyelvekről általában. A hőskorban még komoly jelentősége volt a nyelvválasztásnak. Amit meg lehetett könnyen írni Algol-ban, az körülményes volt megírni Fortranban. Amikor az első rendszerprogramozói nyelvvel ismerkedtem, abban nem volt lebegőpontos számábrázolás. Az oktató azt mondta, hogy címnek nem jó, akkor meg minek.
Vagy a Pascalban nem volt pointer.
Ma más a helyzet. Akkorát fejlődött minden nyelv, hogy szinte mindegy, hogy C, Pascal vagy Basic. Mindegyik majdnem mindent tud. Persze ezek az itt elvárható szinteken igaz, "nagy" rendszereknél azért vannak egyéb szempontok is.

De azért egy kis áttekintés nem fog megártani.

A kontrollerek az un. gépi kódú utasításokat értik és hajtják végre. Ezek 1,2 vagy 3 byte-on tárolt utasítások. A hőskorban így programoztuk a 8080-at, meg a Z80-at. Hex C9 a return és C3 a jump:) Egy idő után azt is meg lehet tanulni.

Közvetlenül e fölött van az assembly szintű nyelv, ami arra szolgál, hogy ne a C9-et, meg a C3-at kelljen megjegyezni, hanem a művelet egy rövidített jelét, az un. mnemonikot. Így lesz a C9-ből "ret", mert hogy ez a return vagy visszatérés, meg a C3-ból "jmp" vagyis a jump, mert hogy ez meg az ugrás egy megadott memória címre.

E fölött vannak a magas szintű nyelvek, C, Pascal, Basic,.. és még lehetne sorolni vagy húszat harmincat a használatosabbak közül. Ezekkel már szinte emberi nyelven le lehet írni a programot.

Na de elég a rizsából, a következő lecke egy egyszerű step/dir jelgenerátor lehetne...holnap este. Akinek van kedve, az addig átnézheti addig az ATTiny13 adatlapját. Ez is 8 lábú, mint az NE555 és ehhez sem kell több külső alkatrész.
AtTiny13A

Előzmény: svejk, 2009-03-02 16:10:00 [11]


  Fórum főoldal  |  A lap tetejére

Időrend:
Oldal 24 / 25 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   20  21  22  23  24  25   Következő ►  Utolsó ►|


 ◊