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
Akkor jön a következő kérdésem:
Hogy lehet egy regiszterben, vagy változóban egy bitet ki/be kapcsolni. pl PORTD.5 legyen H ? Esetleg van valakinek mikrovezérlőkre vonatkozó C-s leírása? Idézet: Bocsi, lehet hogy félreértelek, de nem "előjel nélküli"-t írtam én is? Vagy mi a baj? :nemtudom: „Az uint8 mint tipus = unsigned char-al. 8 bites elojel nelkuli.”
Nekem a PONYPROG ami van és mükszik!
:no: Ehhez, nem tudok érdemben hozzászólni. Sorry!
:help::lookaround: valaki?
MaSTeRFoXX:
pl: PORTD |= ( 1 << PD5 ); de előtte ahhoz hogy kimenet legyen ugyebár DDRD |= (1 << PD5)! ( ezután PORTD 5 - ös lába = 1 ) PORTD &= ~(1 << PD5); nos ezzel pedig kioltod a bitet egy tipp: az ATmega adatlapokban van egy pár C - s mintapélda , érdemes nézegetni szal: avrdude gtk: no problem Üdv mindenkinek >>>>>>
Igen Masterfoxx, Pavelé tökéletes megoldás, én is így szoktam.
Idézet: „Esetleg van valakinek mikrovezérlőkre vonatkozó C-s leírása?” Logikai es bitmuveleteket tanuld meg C-ben ,ez a legfontosabb elsore. Tovabba avr libc online users manual deguss: Idézet: „AVR-éknél az uint8 = 8 bites unsigned integer” itt unsigned integert irtal,en unsigned int -re gondoltam.. lehet hogy felreertettem.Nincs semmi baj
Köszi mindenkinek!
Én tegnap végül is így oldottam meg (az avrfreaks-en találtam segédletet) bekapcs: PORTD |=0x01 (portd.0) kikapcs: PORTD &=~0x01
En nem dijazom ezt a megoldast.
Hasznald azt amit Pavel irt,mert ott megadhatod a Px labat . Azt a megoldast minden esetben hasznalhatod.
Ok, köszi.
Utolsó kérédés: (Most már tényleg abbahagyom ) Hogy nézem meg hogy pl a Porta.7 az 1-e? (bementként van már konfigurálva) egy IF eljárásba kellene...
Lekérdezed a PINA regisztert
If (((PINA & 0x80) >> 7)==1) ....
Köszi! (Ez nézné meg hogy kész van-e a méréssel a szkóp )
Szerintem ne hagyd abba
Ha a portx.n -dik labat akarod ellenorizni,akkor csinald hasonloan:
Ha tobb labat/bitet kell egyszerre figyelned, akkor vizsgald igy if(portx == mask){ },a maskban meg allitsd be a megfelelo biteket es VAGYold ossze oket:
Köszi!
Végül így lett megoldva: . while(1) { if(PINA & (1 << PINA7 ) ) { kiolvas(); } }>>
Ok.
Ez a while(1) a main() -ben van?Vagy mashol?Mert ez vegtelen ciklus es igy megakasztod a procit,csak megszakitasra ugrik ki ebbol blokkbol..
bocsi! nem a procit akasztod meg hanem a programot
Kivancsisag: Mennyivel lesz a hex kodod C-ben irva/forgatva kissebb mint basicben?
A mani-ban van persze.
Hogy mekkora a basic és C közti különbség, azt most nem tudom megmondani, mivel nincs két ugyanolyan célú, és ugyanannyira befejezett programom . Talán a C-s a kisebb
Ok,mani
Majd jelezz ha lesz 2 egyforma progid. avresek,valaki nem nezi meg nekem az IC azonositok topikban a kerdesemet?please...
AVR Studion kivül valaki tud ajánlani valmi más szimuláló progit? ATMega8 esetében TCNT1-nél a WGM13 és 12-es bitet nem veszi figyelmbe a szimulátor csak a WGM11 és 10-es bitek szerint működik... mondanom se kell mennyi fejtörést okozott... nem szeretnék megint ilyen problémákba ütközni... Más is tapasztalt már hasonló jellegű hibát ettől a szimulátortól, vagy csak nekem volt most ilyen pechem?!
Valami más szimulátor?? András
Neked is csak azt tudom javasolni hogy építs egy JTAG debuggert. Azt tudod használni az AVR studioval és nem kell a szimulátorral sz...oznod, hanem a tényleges regiszter értékeket tudod nézegetni. Az atmega8-on ha jól tudom van jtag port.
Kérem a vulgáris szavakat mellőzni! Moderator
Ha mar a JTAG -nal 'tartunk' amit egyszer asszem ebbe a topicba bemasoltal,az ICE -kent mukodik teljes mertekben?
Ezalatt azt ertem,hogy szimulalja az adott procit a megfelelo progival?,tehat be lehet kotni a celhardwerbe proci helyett? Olvastam az ICEkrol hasonlokat,de ott ramokat is emlit en meg a ezen nem lattam ilyesmit.
Igen már én is gondolkoztam h építenem kéne egyet... Tudnátok küldeni egy kapcsolást, esetleg nyáktervel? Mennyiből jönne ez ki? A debuggerben is egy AVR van?
köszi András
Igen egy teljes értékű JTAG ICE debugger. Úgy néz ki az egész, hogy egy mikrokontroller van benne és soros porton a gépre kötöd. A célhardvernek pedig a Jtag lábaira ráakasztod. A tápot a célhardverből veszi, ezért érdemes a soros porti szintillesztőt meg a mikrokontrollert olyat belerakni ami 3,3V-ról is működik. Így ilyen eszközöket is tudsz debuggolni.
Amit feltöltöttem ide azt a kapcsolást én ATMEGA 16L timpussal építettem meg. Kicsit hekkelni kell, de megoldható. Ha érdekelt titeket komolyabban, akkor adok tanácsokat az építéshez. andrew: a kapcsolást én töltöttem fel ebbe a topicba valahova.
Köszi, megvan a kapcsolás!
Csak az a gondom hogy egyenlőre még csak assemblyben tudok programot írni, és nem tudom hogy mit hogy kéne meghekkelni, szoval szivesen fogadnám azokat a tanácsokat
Hali!
Lehet én vagyok a vak, de én sehol nem találom a kapcsolást! Valaki megadná nekem a linket amin el tudom érni! Előre is köszönöm, és elnézést ha béna voltam! Üdv:Higgins
Bocsika!Megtaláltam! Csak elkerülte a figyelmemet! Kár , hogy nem Bascomban van írva a forráskód! Én csak azt favorizálom. :yes:
Üdv: Higgins
Hekkelni ..mar mint a soft, vagy -hw oldalon?
Engem mindenkepp erdekelne...figyelem a topicot
Mindkét oldalon kell kicsit hekkelni! Mivel ha jól láttam ATmega163-al van az eredeti JTAG megvalósítva. A szoftverben meg pár módosítást kell csinálni, hogy ATmega16-al is menjen, ahogy Gory írta!
Gondolkozom én is rajta, hogy megépítsem, bár eddig nem volt soha szükségem ilyen eszközre. Most írom a szakdogám Atmega32+ wiznet modul felhasználásával mikrovezérlőbe ágyazott webszervert csináltam, de mégsem volt szükségem JTAG debugerre. Szoftveres Debugot használok , ami a konzolra írja ki soros porton ha valami gáz van. Aki megcsinálja, sok sikert és türelmet neki. Üdv:Higgins
És miért nem jó a mega163?? Már nem lehet kapni? Akkor végülis csak annyit kéne csinálni, hogy a kapcsolásban kicserélni mega16-ra, és a programban átírni az egyes regisztereket, hogy működjön azzal a procival is??
|
Bejelentkezés
Hirdetés |