Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
De nem kellene elore megadni a letrehozando tomb meretet? Mert amit C kodokat neztem ott nem talaltam (ez meg nem jelenti azt hogy nem volt megadva...).
Ez karakterfogadasnal erdekes, mert honnan lehet tudni hogy a soros porton egy nehany betus szo erkezik-e, vagy esetleg egy kisebb regeny? Visszaterve a soros LCD-re, ott definialhato egy 2X16 karakteres tomb, es mondjuk 16 karakteres adagokban irunk ra, de ott nemcsak a bejovo adatokat kell tarolni, hanem azt is nezni kell valahogy, hogy a bejott karakterekbol melyikeket irtuk mar ki az LCD-re. A masik nehezseg az LCD parancsok eszlelese, es a benne levo parancsok, szamok ertelmezese. Na mindegy, ha egyszer sok idom lesz (es nem szerzek be mas, erdekesebb kutyuket addig) nekiallok es vegigbogaraszom...
Mindenképp meg kell adni, a karakterlánc hosszát, váltózdeklaráláskor lefoglalni neki a memóriát. Ez lesz a pufferméret, erre kell figyelni, hogy ne csorduljon túl. Működhet a program csak a kezdőpozíció megadásával is, mert a c igen rugalmas. Simán hozzányúl akár a soron következő 100-dik memóriacímre is, csak kitudja mi van ott, és ekkor következik be az, hogy nem azt csinálja a program amit beírtunk neki.
Az általad mellékelt alprogramban azért nem kelett, mert a karakterlánc címét adta meg, és addig küldött amíg elérte a sorvégjelző karaktert, tehát nem futhatott túl. Soros lcd kezelésre visszatérve. Még nem használtam spec lcd parancsokat. De ha rajtam múlna akkor minden karaktersor elé tennék egy prefixet, pl ha a karakterlánc első eleme 1 akkor elsö sorra irat, ha 2 akkor a másodikra, ha 10 akkor ilyen lcd parancs. A végén pedig ott a karakterlánc lezáró jel, akkor tudja a program hogy feldolgozhatja a dolgokat, és felkészítheti a puffert a következő csomag fogadásra.
Letezik dinamikus memoriafoglalas is, csak atmega_(64?)_128-tol kezdodoen lehet hasznalni (malloc(), calloc() es a hozza tartozo free()). Nyilvan ennek csak nagyobb adastrukturak eseten van ertelme.
Petho Adam - abC cimu konyvet nagyon tudom ajanlani. Majd meg mondok tovabbi infot, de most muszaj aludnom.
Én így oldottam meg:
Szép estét!
Egy egyszerű kérdésem lenne: A Topi féle segéd órajel generátort úgy kell használni, hogy tápfeszt kell adni az AVR-nek, és a generátor kimenetét(az IC 4-es lába) az XTAL1-re kötni, a GND-t meg összekötni a tápfesz GND-jével? Köszönöm szépen.
Jól írtad, de ne felejts el tápot adni az órajel generátornak se!
Köszönöm szépen a választ, persze, nem felejtem el.
Nekem ez a generátor be sem indult. Majd egyszer csak elhatároztam, hogy csinálok egy másikat 555-ös IC-vel. 60kHz környéki freki jött ki és fel is tudtam éleszteni a kontrollert vele.
Szerk.: Eggyel feljebb szántam.
Szasztok
Egy kis segítség kellene. A terv az lenne, hogy egy Atmega16-os küldjön és fogadja a sorosporton elküldött adatokat, és fogalmam sincs, mit kell beállítani a Bascom AVR-ben, és a chip programjában, és sajna bekötésem sincs ami működne, mert találtam egy csomó féle kötést, de nem tudom melyiket használjam. Ha valaki más komunikált Atmellel és esetleg van egy példaprogramja, tudna segíteni, azt megköszönném. Egyenlőre a cél csak annyi lenne, hogy PL: Elküldöm a PC-ről ezt: Valami A pic meg értelmezi, kb így: Ha a soroson jön egy adat és az = "valami" akkor bekapcsolom az egyik kimenetet. Egyszerű elképzelés: Do Várom az adatot.... (ezt nem tudom hogyan) If Adat = "led1be" then Set Portb.0 If Adat = "led1ki" then Reset Portb.0 Loop röviden Köszi előre is.
Az is elég lenne egyenlőre, ha az Atmellal elküldött jelet, karaktert-eket megtudnám jeleníteni a terminálban.
Csak hogy egyáltalán adatot tudjak küldeni, vagy fordítva. Csak menjen.
Olvassad el ezt, ez hatha segit:
Bővebben: Link
Kedves mindenki!
Tud-e nekem segíteni valaki abban, hogy hogyan kell AVRStudo+AVR-gcc kombóban egy c programba asm kódot beilleszteni? Kerestem, de vagy én vagyok :lama: , vagy tényleg nincs. Segítségeteket előre is köszönöm! Matyi
Amit gcc-vel lehet azt avr-gcc-vel is lehet.A szintaxistol meg fogsz lepodni. Bővebben: Link
Amit feldobott HeStore-os linknél lévő jó is lesz.
Megcsináltam az oldalon lévő kötést és át írtam a programban a chip-et M16def.dat-ra, mert Atmega16-ost használok.
A kérdés, hogy mi ez a Pind.6, Portd.6? A bekötésnél nem szerepel ilyen, az Atmega16 RX-TX lába PortD.0 PortD.1. Nem igazán értem, mit kéne így átírni, hogy menjen. Vagy a bekötést is módosítani kell? $regfile = "m16def.dat" $crystal = 4000000 $baud = 9600 Config Pind.6 = Output Dim Firstnumber As Integer Dim Secondnumber As Integer Dim Sum As Integer Do Set Portd.6 Firstnumber = 0 Secondnumber = 0 Input "Enter first number : " , Firstnumber Input "Enter second number: " , Secondnumber Sum = Firstnumber + Secondnumber Print "Sum: " ; Sum Reset Portd.6 Waitms 100 Loop End
Ja közben rájöttem, hogy semmi jelentősége, csak egy ledet lehe rá kötni, ha akarok és jelez amikor kezdődik a köldés és elalszik, amikor végzett.
Így jelzi a komunikációt. aszthiszem. De ki is vettem, mert nem kell. Most ott tartok, hogy összekötöttem és megy is, csak nem jól. Az atmelből küldött karakterek helyett, mindenféle kix kraxot ír a terminál. Mi lehet a baj?
Elég alap dolgokkal nem vagy tisztában.
Szóval: Ehhez a fajta kommunikációhoz be kell kötnöd az Rx, Tx lábakat (adat) valamibe amivel kommunikálni akarsz. Ha ez PC akkor szükség lesz szintillesztésre, ezt csinálja a MAX232. Kapcsolást találsz rá egyből. A gnd-t se felejtsd el bekötni. http://avr.tavir.hu/images/contents/14f.gif Ha ez megvan, akkor a kommunikációnak mennie kell. Ha a Bascom kezelésével van gond, akkor azt pedig a http://www.hobbielektronika.hu/forum/topic_10111.html kérdezd. Ha akarod ott részletezem, hogy el tudj indulni.
Kellemes estét!
Megépítetem a segéd órajel generátort, de nem sikerült visszahozni az életbe az attiny45-ömet. Az a baj, hogy nem tudok rámérni, hogy ad-e órajelet az áramkör, mert oszcilloszkópom nincs, és a multiméterem se méri. Milyen módszerrel lehetne megmérni valahogy? Bár azon gondolkodom, hogy lehet, hogy nem ezzel van a gond, hanem az AVR-rel. Majd lehet hogy kipróbálom másik AVR-rel, hogy viszi-e. Bár először jó lenne tudni, hogy van-e egyáltalán jel a kimenetén.
Sziasztok AVR studio 4 kéne nekem mert sajnos csak torrenten találtam letöltést.Megköszönném ha valaki el tudná küldeni e-mailben.Köszi.
Ja és ez nagyon tetszett. :peace:
Én nyák nélkül drótoztam össze egy ilyen IC-t a procival.
Közben kipróbáltam egy másik AVR-rel, amit külső kvarcra állítottam, és azt vitte, tehát a "műszív" jó. Akkor azt hiszem, hogy elfelejtem ezt a vezérlőt.
Köszi...
Sziasztok,
Azt kérdezném, hogy hogyan lehet karakterláncot olvasni RS 232-n keresztül. Vonalkód olvasót kötnék rá. Néhány oldallal ezelőtt láttam, hogy karkterlánc küldéssel már foglalkoztak, de a fogadást nem találtam. Előre is köszi
Hali.
Azt szeretném megkérdezni, hogy a programba nem lehet beleírni valahogyan a konfigurációs bitek beállítását? AVR Studiot használok. Élőre is kösz.
sziasztok engem az érdekelne hogy ezzel lehetséges e időt kijelezni(lehet e egyáltalán olyan progit írni hozzá?)
Ha igen annak nagyon örülnék Válaszotokat előre is köszönöm.Ja ha ugyebár az AVR belső oszcillátorát használjuk órajel generálására akkor az annyira nem lesz pontos de felőlem óránként több percet is eltérhet csak mutassa az időt Ja a beállítást úgy gondoltam h a programban egy helyen megadjuk hogy mennyi is az idő és onnan számol.Köszi. Bővebben: Link
Nem is!!!A beállításhoz mondjuk pin 22-23 24-25 re 1-1 nyomógombot.azok ha jól számoltam szabad lábak.Tehát elindul az óra 12:00:00 ról, megállítom beszúrom a nyomógombokat benyomkodom a körülbelüli időt, elindítom, ha a valós időt mutatja akkor jó ha nem akkor addig nyomkodom amíg jó nem lessz ezután a gombokat akár ki is vehetem a foglalatokból. Megköszönném ha valaki tudna írni programot és szerintem még a cikkbe is bele lehetne szőni mert így az egész kapcsolás legalább 2X olyan érdekes lessz... Köszönöm mégegyszer.
Azt tudod hogy van már ilyen csak PIC-es? Távirányítós és némileg kifinomultabb is.
|
Bejelentkezés
Hirdetés |