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
Én is "gyedi" csatlakozót használok :schmoll2:
"A mai alaplapokon az a régi védelem, hogy 700-750 mA áramfelvétel esetén lekapcsol - a múltté. Nálam a régi PII-COMPAQ alaplap még tudja."
Ez nem feltetlen igaz, egy rendesen megtervezett eszkoznel szamolni kell vele, hogy egy usb port legfeljebb 500mA-t tud leadni...
Lehet kapni PCMCIA-s LPT adaptert. Az be tud ulni a szabvanyos IO portokra...
Igen, az USB (elvileg) 500 mAre van kitalálva. A Compaq is e felett kezd kiabálni h túlterhelt. De 700 mA-ig még hagyja használni.
Az új laptopokon viszont 300-350mA a limit! Utána is megy, csak a fesz leesik. Sőt. ha kevés az USB, akkor a kreatív felhasználók USBHUB-ot raknak és azt hiszik, h az is elmegy mindennel... Ezért USBre tervezett mikroelektronikát 100-150 mA fölé nem merek tervezni, vagy a leírásába kis lista: önálló USBre rakható csak.... Jó kis leírás USBről a USB in nutshell leírás. Abban minden benne van (1.0, 1.1, 2.0). De hogy AVR is legyen: SoftUSB slave/client emulációs projektek vannak a Obdev oldalon....
A saját tápos USB HUB - ok ( én is ilyet használok biztonsági okokból) 5V 2A -es táppal tudják minden portjukon az 500mA -t.
Notebook és notebook között nagy különbségek vannak, a normálisan kitalált márkásabb darabok leadják az 500mA / port áramot.
Belso orajelet hasznalsz? Hany MHz-en?Csak 1 MHz-ig pontos es hasznalhato (allitolag) pl. SPI orajelkent.
Külsö kristály 11,059200Hz. Nemtudod hol találok spi-hez függvénykönyvtárat, vagy valami példaprogramot? Külsö fash-el szeretnék kommunikálni.
Használj Procyon libeket. Elég sok időt lehet megspórolni velük, de csínyán kell bánni az idegen LIB-ekkel... csak idő spóroláshoz használd, ne tudás spóroláshoz.
Ha úgy használsz gyári, vagy külső libeket, hogy nem tanulmányoztad ezerrel és értetted meg, akkor nagyon megszívhatod egyszer hibakeresésnél! Tehát ha használod, előbb tanulmányozd a forráskódot. Bővebben: Link (Procyon - AVRLib)
Köszönöm jó kis gyüjtemény, de az spi-megoldása nemigazán tetszik. Igaz hogy rugalmas de nem mindig előny. Még utánanézek a dolgoknak.
Hello!
Nekem sikerült működésre bírni az SPI-t 2db tiny2313 között. Én asm-ben írtam a progit, de c-ben is meg lehet oldani. Nem tudom te milyen AVR-t használsz, de gyanítom ugyan olyan az SPI mindegyikben. Az adatlapban szereplő asm példát áttanulmányozva hamar rájöhetsz, hogy nem CSAK az USICLK-t kell "beírkálni" a control regiszterbe. Más: nálam lefagyott az AVR ha épp nem volt "kivel" kommunikálnia Megint más: akkor is lefagyott, mikor nem volt beállítva a kimenet data direction bitje. A "fagyás" végtelen ciklus eredménye, ami az asm példából eredt ---> nem jelent meg az overflow interrupt flag ---> nem történt shiftelés Üdv!
Attiny2313-at használok most kísérletezéshez. Asm-be elég gyenge vagyok, nyáron tanultam valamenyit de azóta elmult. Létszives kommenteled nekem az adatlapban található asm-kódot?
Szóval ajánlott ha rajtavan a céleszköz akkor megcsinálom neki a 3V-os tápot és az adatvonalak osztását.
Üdv!
Bascomban szeretnék sztringet kezelni. Olvasgattam a tavir-os dolgokat, de ott eléggé elnagyoltan van kezelve ez a dolog. Pár előfeltétel: dim xx1(32) as byte ' soros hw-rutin kezeli dim ws as string * 32 ' eredmeny string Az xx1-be kerül egy karakterlánc, amit egy mobiltelefon (siemens c35i) küld át kábelen. Tipikusan így néz ki: " RING +CLIP: +3670telefonszám, 145 " Ebből kellene kivadásznom a telefonszámot, és áttenni ws-be későbbi összehasonlítás céljából. Nem tudok dűlőre jutni vele, mert mindig valami baja van a fordítónak. Általában az okozza a gondot, hogy az egyik byte-tömb, a másik meg sztring. Már az is győzelem lenne, ha tudnám a sztringet indexelni majd karakteresen összehasonlítani, de eddig nem találtam rá példát. Remélem valami guru megszán! Krisz
Dim xx1(32) as byte az biza egy 32 elemű TÖMB.
XX1-be _nem_ karakterlánc kerül, hanem byte értékek! Az XX1-ből tessék stringláncot csinálni. Vázlatosan: dim string32 as string*32 String32="" For I=1 to 32 tempstring1=chr(xx1(I)) string32=string32+tempstring1 next I telefonszam=mid(string32,19,9) Fontos! xx() nem lehet 0 értékű, mert a sztringlánc vége jel a Bascomban! A TavIR Bascom oldala a programozásról szól és nem a Basic alapokat taglalja. Az az 1. és második fejezet linkjein érhető el .
Gondolom a master kell...
SPITransfer: ;Szubrutin neve, feje out USIDR,r16 ;adat az usi data regiszterbe az r16 általános regiszterből ldi r16,(1< ldi r16,(1< out USICR,r16 ;itt megy a control regiszterbe aminek kell... sbis USISR,USIOIF ;teszteli az usi ovf int flaget, ha 1 lesz a flag, akkor az utána következő parancsot kihagyja rjmp SPITransfer_loop ;relatív ugrás az SPITransfer_loop címkéhez in r16,USIDR ;a kapott bájtot r16 reg-be tárolja ret ;visszatérés a szubrutinból A control regisztert fejlesztéskor nem árt alaposan áttanulmányozni Hello! U.I.: Én asm-et az adatlap "Instrucion Set Summary" részéből tanultam >>>>>>>>>>
A rendszer benyelte a kód egy részét. Kimásoltam az oldal forrásábol hogy legyen teljes, másnak is elérhető.
Köszönöm szépen!
Igazad van, valóban nem a programozás a dolga az oldalnak, de nekem pont ez kellett volna. Ellenben nagyon örülök, hogy van egy ilyen megoldás! Azt eddig is tudtam hogy mi a baj, csak azt nem, hogy hogyan lehet feloldani. Köszönöm!!! A linkeket nem nem is láttam.. meg is nézem.. Krisz
Ezt is csak második próbálkozásra sikerült produkálnom
Köszi!
C-ben programozok,most kaptam rá az avrasm-re.Egy rövid kérdésem lenne:egy macrót ahányszor meghívok annyiszor beépül a kódba ellentétben a subroutine-al,ami ugye egyszer .Mi történik ha macroból meghívok egy subroutint ? Az is annyiszor beépül ahány hívás van ? Kösz !
Hello!
Csak a hívás épül be. Szubrutin hívásakor bedobja a verembe a visszatérési címet, és odaugrik a szubrutin elejére. Amikor a szubrutin végén megkapja a ret utasítást, gyakorlatilag a veremből kikapja a címet, és odaugrik. Hali!
Szia ! Kösz ! Így a logikus ,valóban.
Sziasztok!
Találkozott már valaki olyan súlyos hibával, hogy AVRStudio 4 érvénytelen címre akar írni? Még hallom is szinte, hogy egy másik merevlemezre nyúl. Fordításnál (Build+Run) ez jön, többször is. Google nem segített sokat, még nem volt ezek szerint másoknak ilyen problémája. Mi lehet szerintetek a baj? Fent van a 4.13-as verzió SP1 és SP2-vel. Gondolom van AVRStudio Linux alá is, de támogatja az USB-s STK500-as programozót?
Még nem találkoztam ilyennel, de létezik service pack az AVR studiohoz, azt felkraktad?
(Én winAVR-rel fejlesztek, a C fordító totál ugyanez, csak az AVR studió megkerülésével, ott még ilyen hiba nem volt...)
Szia ! Nekem gyanus az a C a háttérben.Nem Codevision C-t akarsz fordítani ? Nem hallottam ,hogy linux alá AVR studió létezne,sztem itt az XP-el lehet valami.
Bocs, nem figyeltem... fent van az SP1 meg SP2.... Akkor nem tudom.
Linux alá van az AVR-GCC (ugyanaz a fordító mint a winAVR-ben meg AVR studióban). AVR-be programot feltölteni meg az AVR-dude programmal lehet ami meg ismeri az STK500 és STK500v2-es programozót is. De létezik egy kontrollerlab nevezetű linuxos fejlesztőkörnyezet AVR-re, még nem próbáltam, de asszem nemsoká kipróbálom
Szia!
De, de CodeVision-ban írtam egy LCD kezelő rutint, meg ott ismerkedtem meg a C-vel AVR-re, most akarok áttérni avr-gcc fordítóra illetve használni az AVRStrudiot. A programot átírtam, de nagyon unszimpatikusnak tűnt, hogy a _delay_ms csak 200ms-ot tud maximum, és egy egyszerű saját delay fgv. meg lefagyott, vagy a fene tudja miért nem megy. Valahogy így nézett ki:
De azt mondjátok, hogy WinAVR is tudja kezelni az STK500-as programozót? Mert akkor kipróbálom. Vagy lehet hogy egyből valami Linuxos után nézek. Csak Linuxon még kezdő vagyok, azt kicsit macera, hogy nem tudom olvasni az NTFS-t, meg még van pár ilyen kezdő problémám. Nah, csak lesz valahogy, megpróbálom, ha hazaérek.
Hogy a fv-hivas idoket kikeruljuk erdemes makronak vagy inline-nak deklaralni a fv-eket (utobbi szinten ugy viselkedik mintha makro lenne, behelyettesit a hivas helyere)
Ha arra a C-re adtad ki a build-et ami ott van ,akkor nem csodálom hogy kiakadt a Studio
Felraktam Ubuntura a kontrollerlabot. Ígéretesnek tűnik. Elég kultúrált, van benne hétszegmenses, meg pontmátrix lcd karakter tervező. Már sikerült benne fordítani, ismeri az STK500, meg 500v2-t, de nem égettem vele.
Nagyon szépen köszönöm a jótanácsokat mindenkinek, most próbálkozok én is, hamarosan beszámolok.
A kontorllerlab jó cucc, bár lenne rajta mit csiszolni. Füles forráskódböngészés, fájl hozzáadása megnyitás nélkül. Esetleg egy AVRStudio féle fuse égető menü, hogy ne lehessen oly könnyen kizárni magad. Na dehát erre van a nyílt forráskód Ha nem tetszik csináld meg magadnak.
|
Bejelentkezés
Hirdetés |