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
Idézet: „Érdekes, hogy az Atmel.com-on sincs semmi érdemi dolog, hogy lehetne-e rendelni vagy valami, csak vakítanak, meg vetítenek az új dolgokról, velünk meg az amatőr kisebbséggel nem is foglalkoznak, hogy hozzájuthassunk egy-két eszközükhöz!” Szerintem az ilyen fejlesztőcégek nem is arra törekednek, hogy az "amatőr" rendeljen tőlük egy- két darabot. Aki pedig nagyban tervez, valószínűleg van lehetősége arra, hogy nagy tételben, olcsón jusson hozzá a procikhoz, lehet, épp' közvetlenül a gyártótól! Én ezen nem csodálkozom, érthető helyzetnek látom...
Egyetértek,
illetve annyit helyesbítenék, hogy mi (az amatőrök) sztem nem a kissebbség vagyunk hanem a többség, bár tény h mi nem 10 000 -res tételben vásároljuk, de sok kicsi sokat ér nem?
Felhasználói számban minden bizonnyal mi vagyunk többségben. Viszont processzor mennyiséget "fogyasztó" számban szerintem kisebbség...
Idézet: „bár tény h mi nem 10 000 -res tételben vásároljuk, de sok kicsi sokat ér nem?” Ez így van! De ki fogja elvállalni, hogy megrendel és kifizet 10000 darabos tételt? Mert a gyártó nem fogja megvárni, mire egyesével beérkezik az "amatőr tízezer..." Részemről ennyi, szerintem érthető a dolog mechanizmusa, ha nekem nem hiszitek el,majd elmondja más!
Természetesen azért kell 2K-s SRAM-os kontroller minimum, ha 1K-s a buffer, mert 0byte üres SRAM marad egy 1K SRAM-al felvértezett kontrollerben, ha az összes 1K-t elhasználjuk buffernek.
Egyébként ez így jön ki: 16oszlop * 8 sor = 16byte 1db bicolor ledmatrixnak a buffer. 64db ilyen mátrxhoz kell 1024byte.
Á!
Így már étrem. A 64db-os szorzó maradt ki.
Sziasztok,
előre is bocsánat ha a kérdés triviálisan egyszerű, de elég kezdő vagyok és elakadtam ezért szeretném kérni a segítségeteket. Szóval AVR-doper programozóm van amit a he-store-ból rendeltem. az oldalról letöltöttem a ledvillogo.hex filet és be akartam égetni egy Attiny45 (soic8)-as chipbe AVRStudióval. De valamiért nem tudok szabadulni a hibaüzenetektől. Csatoltam a képeket,valamiért a signiture byte nál, does not match selected devicet kapok ha readre nyomok. A chiphez nem használtam foglalatot (nincs soic8-am kéznél) és forrasztottam, lehet hogy elrontottam vele?
A lemaradt csatolmányok ...
Kristályt használtál a programozáskor?
A fuse-biteknél külső kristályra van állítva az órajel.
Programozó nem tudja program módba léptetni a processzort, és a képek arról árulkodnak, hogy a processzor azonosító lenyomat (Signature) olvasása is sikertelen.
Fuse biteknél nincs becsekkelve az SPI, így a már sokszor problémaként jelentkező órajel a gond, a csatlakozás nem megfelelő, vagy tápot sem kap a cél processzor.
Igazad volt, a csatlakozást átnéztem és rossz volt egy csatlakozó, javítottam így már van signiture.
de az órajel még mindig gond ha le akarom küldeni a programot és az SPI fuse bit bekapcsolása inaktív mit kell átállítsak a fuse biteket ?
Szia!
Az avr22.jpg képen látszik, hogy külső oszcillátorra volt állítva a proci, de valószínűleg nem volt rajta. Így kizártad magad a prociból. Építsd meg Topi műszívét, amit megtalálsz az oldalon, vagy ha véletlenül nincs hozzá otthon IC-d, akkor szólj és megkeresem neked a tranzisztoros kvarc- oszci rajzát. Nekem ez a műszívem, mert nem volt IC itthon hozzá... :yes:
Kösz a tippet.
Most sikerült feltöltenem a programot és megy is. Bocsánat ha kicsit szájbarágósan kellett elmondanotok még csak most ismerkedem a jószággal Köszi mindenkinek a segítséget
Sziasztok!
A következő a problémám, Atmega8-cal és 32.768kHz-es órakvarccal csináltam egy órát, de valamiért siet nem is keveset, átszámítva 76 800 másodperc alatt 41 másodpercet. Több órát is szinkronizáltam és mindíg ez siet. Az előosztó 128-as, így a 8-bites regiszter másodpercenkét csordul túl. A kérdésem hogy ezt ti hogyan oldanátok meg? A válaszokat előre is köszönöm!
Nos. A pontos óra frekit igencsak befolyásolja a quartz-on lévő kondik értéke és az ic lábtól való távolság.
C = 12.5pF általában (ha jól emlékszem) 32768/128 = 256 azaz 0.00390625 sec. Ezt kell pontosan osztani tovább. Nézd, meg, hogy a további osztód jó e. Ja én egy 500HUF-os RTC-használnék, ahhoz elemet is lehet tenni és nem felejtené el az időt. SPI vagy I2C-n kezelhető. És még plusz ram is szokott bennük lenni, ami szintén nem felejt. Így pl ébresztést lehet tárolni ott, vagy amit akarsz.
Kulso kondenzator nem kell orakvarchoz.
Szerintem csak a kvarctol siet vagy kesik, Probald ki masik kvarccal.
Ez már másik kvarc ami benne van, és ez is siet. Ezért is lebeg előttem ez a sok kérdőjel
Műszer? Hogy tényleg 32768 Hz-ről fut-e.
Sajnos a '73-as gyártmáynú Orion szkópom erre már nem alkalmas. Próbálok még pár trükköt hátha sikerül, a baj csak az hogy rengeteg időt felemészt mire látható eltérés van. Esetleg a Soundscope progival megpróbálhatom legfeljebb leosztom a frekit 2-vel.
Aha. És akkor mitől fog működni, ha nincs kondi?
Csak akkor nem kell, ha az IC tartalmazza. Ha tévedek javíts ki és indokold.
Nem szükséges kondi, ugyanis direkt erre a kvarcra fejlesztették ki az oszcillátorát. (benne van az adatlapban is)
Nos gondolkodtam.
Szerintem... 32768/128 = 256 Ez valóban 8 bit túlcsordulása. Azonban amíg az IT kiszolgálódi, addig a számláló számol és gondolom a végén nullázod, vagy hasonló. Vagyis mire te számolsz addigra a számlálóban már van érték. Na lehet nagy hülyeséget mondtam! Remélem érted mit szerettem volna. És mondjuk ne 128-al, hanem 256, vagy 1024-el oszd Ekkor az IT végén. TCNT0 += TIMER0_VALUE; Nekem ált. így igen pontos időzítések jönnek ki.
Igazad van!
De ezen a bemeneten valószínüleg belül van a 2 kondi, mit a többi IC-ben. Valahol olvastam és ott mutatták a belső felépítését egy ilyen RTC-nek.
Sziasztok!
Böngésztem a fórumot RS485 ügyben, de nem lett minden teljesen világos. Kérdéseim: 1. A UC USART lábait kell (AVR) rákötöm egy RS485-ös IC (pl max485) RO és DI lábaira? 2. Ha a Benbus-t szeretném használni, akkor a sima USART-os adatküldéssel / fogadással (ami az AVR-ek adatlapjában le van írva) dolgozok rá a max485-ös IC-re a Benbus elve szerint? 3. Ha nekem nem fontos a CRC, kihagyhatom? Előre is köszönöm válaszotokat
Nem tudom, hogy EZT ismered-e?
Lényeg, hogy az RS485 csak fizikai felület, azon ugyanúgy sorosan kommunikálsz mintha rs232-t használnál, annyi kivétellel, hogy ez alapból half-duplex, és neked kell váltani az irányt is, egy külön procilábbal. Ha nem kell a CRC, nem bonyolódnék bele a Benbus-ba sem, egyszerűen kinevezel egy mastert, meg több slave-et a vonalon, és a master mondja meg melyik mikor dumálhat vissza. Ha egyáltalán kell kétirányú kommunikáció.
Igen, olvastam, de a feltett kérdésekre nem találtam benne a választ.
Ha jól értelmezem, akkor viszont a bekötést jól gondoltam és a kommunikációt is. Tehát simán USART-on kommunikálok a MAX485-ös IC-vel és már működik is. A half-duplex bőven elegendő nekem, nem érné meg duplex hálózatot kiépítenem. Túl nagy lenne a költsége és kihasználatlan lenne. Mivel itt az adatveszteség nem életbevágóan nagy probléma, ezért a CRC-t elhagyom akkor. Amennyiben jól értelmeztem a válaszodat, köszönöm a segítséget, ha még valamit nem jól kérlek javítsatok ki
Mivel senki nem válaszolt a problémámra, így válaszolok magam . A gond az volt, hogy a 128 khz-es órajel mellett már csak párhuzamos programozással lehet programozni az attiny13-at, ISP-vel nem, ha a clkpr nem megfelelő. Mivel az én Doper progizóm csak ISP-t tud, így csináltam egy chan féle párhuzamos programozót, amivel 2 napig szívtam, mert bele keveredett egy 8 voltos stabic az 5 votlosok közé, és persze, hogy azt vettem ki elsőre, és annyira rosszul látszott a szám, hogy 5ösnek láttam. A lényeg, hogy működik, és hasznos kis programozóm lett, mert így a reset lábat is tudom most már progizni. Ja és persze megmentettem az attinyket is.
Chan féle progizók
Anno nekem két ATmega16-ost mentett meg a kukától ue. a programozó.
Ezt a programozót építettem meg, és a csatolt programot szeretném feltölteni az attiny2313-ra, de hibát kapok avrdude-tól:
Mit rontok el? Volna ötletek? (belső frekit akarok használni, az alap fusebit-eket használnám, átírtam a makefile-t, az elektronika egy isp csatlakozóból uCből, és ledből áll. no meg egy reset láb felhúzó ellenállás ~10k a +V-re) mod: winavr-el próbálkozom.
Feltelepítetted a szükséges drivert (\bin\install_giveio.bat)?
Mert az is lehet hogy nem tudja megnyitni az LPT portot, amúgy ajánlom figyelmedbe a bufferelt ISP programozót, amit itt megtalálsz. |
Bejelentkezés
Hirdetés |