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
Csak egy betűt írtál el: a 6. sor bal oldalára is TCCR1A-t tegyél...
Más: a kódot be tudod másolni ide is, nem kell képként feltölteni és akkor a segítség is hamarabb érkezik...
Persze, csak a cikkek közt kell keresni: Intelligens LCD modulok...
Kösz a gyors választ, müködik és megfogadom a tanácsod. Mégegyszer kösz.
Sziasztok!
Gondom támadt az UART-al. Atmega8-ra müködött jól. Atmega164-re viszont nem. A regisztereket átírtam, a megszakítás emghívódik de nem értelmes karaktereket dolgoz fel. A kód:
Puffer kezelőfügvényeket kihagytam. Csak az UART van benne. a-ra nem vilogtatja a ledet. Ha nem kötöm feltételhez, csak a megszakításhoz akkor felvillog. Tehát nem értelmes karaktert kap az Uart. Mi lehet a gond? Választ előre is köszönöm! Z.
Először ott keresném a problémát hogy a CKDIV8 nevű FUSE bit kivan-e kapcsolva?
A másik hibalehetőség(de látom erre ügyeltél), hogy nem tudni miért, de az ATMega8/16/32 esetében az UCSRC és az UBRRH regiszterek azonos I/O memóriacímen vannak. Tehát ha kicseréled a két megnevezést, a kód nem változik! Az elérésnél úgy tesz különbséget a hardver, hogy a legfelső, URSEL nevű bit helyére 1-et kell beírni.
GCC eseten ilyen nem letezik. ANSI C sem ismeri.
Igen. Én már többször jártam így. Azóta jobban odafigyelek.
Nagyon este volt már ezek szerint!
A fuse bit volt a hibás! köszönöm szépen! A közös memóriacím használatra nem találtam utalást atmega 164P esetén
Szia!
Eléggé "parasztvakításos" szaga van. Szerintem csak rákapcsoltak forditott tápot jónagy feszültséggel. Én öltem már meg Atmega8-at fordított táppal. Nem picit felmelegedett. De nem hinném hogy egy iparban alkalmazott mikrovezérlő ilyet művelhessen nullával osztás miatt. De javítsatok ki ha tévedek
Nem gondoltam, hogy ezt valaha valaki komolyan veszi. :no:
Egy ATMega vezérlő NEM TUD OSZTANI !!! Innentől fogva a képzeletedre bízom a lehetséges okokat, hogy mi okozta ezt! Üdv Kiborg
Azért, mert nincs benne hardveres osztó, még tud osztani...
Szia!
Ha nincs benne hardveres osztó nem tud osztani, hiszen nem azt a műveletet végzi el (hanem lebontod TE (vagy másik program)a programban elemi műveletekre) A programfutásának eredménye tényleg a hányados de azt 2 órajelciklus alatt nem kapod meg. Míg amit hardveresen támogat (szorzás 2 órajelciklus, az összeadások és kivonások általában 1 órajelciklus alatt megvannak) Csak elemi műveletek tud elvégezni.(najó meg a szorzás)
Igen, de ott fix az osztód
Te is rosszul éreznéd magad, ha csak kettővel tudnál osztani mindig. Bár elismerem sokszor elég annyi is
De aritmetikai shiftelést nem tud tudtommal.
De tud.
ASR - Arithmetic Shift Right Description: Shifts all bits in Rd one place to the right. Bit 7 is held constant. Bit 0 is loaded into the C Flag of the SREG. This operation effectively divides a signed value by two without changing its sign. The Carry Flag can be used to round the result. +LSL,LSR, ROL,ROR Kiborg
Egy kis érdekesség: x86-nál a nullával osztás interruptot generál(ha jól emlékszem, az 5-öst)!
Aki csak egy pillanatra elhitte, esetleg ki is próbálta csak a videó miatt, annak ajánlom hogy sürgősen keressen másik melót. Egyébként fordítótól függ az eredmény, de általában az adott felbontás (előjelesnél negatív)maximuma lesz. Lebegőpontosnál pedig INF lesz ha sztringgé alakítod de ebben nem vagyok teljesen biztos.
Nem ugy van veletlen, hogy ez csak bizonyos regisztereken hajthato vegre? Azaz ha nincs ebben a tartomanyban akkor elobb be kell olvasni, elvegezni a shiftelest majd vissza irni?
Szia!
Vannak bizonyos műveletek amiket tényleg csak eza R16 és R31 regiszterekkel lehet elvégezni, de ez a művelet olyan, amit bármelyik (R0-R31) regiszterrel el tud végezni. Ajánlott olvasmány, ha szereted az ASM-t:ATMEL Instruction Set Üdv Kiborg
0-ás. Az 5-öst nyomtatásra használtam (Print Screen) ezelőtt 17 évvel egy Turbo Pascal programban.
Igen, valóban a 0-s(egész pontosan: "int 00h", míg az 5-ös a "fizikai" IRQ5, amihez "int 0Dh" tartozik.
Az r0-r15 regisztereken csak azok a műveletek hajthatók végre amelyeknél nem szerepel konstans érték.
Lényegében az "i"-végűek(i==immediate) nagy része kizárva: andi, ori, cpi, sbi, ldi, stb.
Sziasztok!
Nagyon új vagyok a témában és felmerült 1-2 kérdésem az AVR-ekkel kapcsolatban. Keresek valami e-book-ot, amiből az alapoktól el lehetne kezdeni megérteni a nyelvet. Tudtok tippet adni? A másik, hogy ezen a linken: szobanövény szárazság ellenőrző egy elvileg működő kód van. De amikor le akarom fordítani, azt írja, hogy deklarálnom kéne egy csomó változót!? (COM0A1, COM0A0, WGM01...). A "beinclude-ált" .h fájlok elvileg rendben vannak. Előre is köszi a segítséget! Üdv: dinnyextra
Hello!
Készítettél már mfile-t a programhoz? Ha igen akkor jól választottad ki a proci típusát? Az ebook-hoz annyit, hogy ha nem vagy tisztában a C nyelv alapjaival akkor először azokat érdemes átnézni mert anélkül bizony nehézkes lehet. Egyébként van az AVR Butterfly-hoz írt könyv, azt talán érdemes beszerezni (angol nyelvű).
AVR Toolchain-t telepítsd fel!
Egyébként én létrehotram egy új projektet AVR Studio-ban (AVR GCC kiválasztva), majd bemásoltam az egész kódot. Mint a parancsolat, egyből lefordult! Egyedül az F_CPU miatt sírt, de azt is seperc beállítom.
Kedves szakertok!
Egy problema merult fel a HEKIT 301-el kapcsolatosan.Ugyanis gondosan osszeszereltem a kutyut - csatlakoztatom a gephez - felismeri(Hobbielektronika.hu: AVR-Doper) - telepitem a drivert - sikeres es hasznalatra kesz! De ezeken a muveleteken kivul semmilyen kommunikacio nem tortenik a szerkezettel - sem az AVR studio 5 sem a Code Vison AVR nem latja - (Error opening COM port...)....se nem pislog se nem morrog. Windows Vista Home Premium 32-bit-en tortenik az egesz.Elore is koszonom a valaszt! |
Bejelentkezés
Hirdetés |