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
Köszi már sikerült megoldani a problémát
Sziasztok
Segítség kellene SPI-vel szeretnék meghajtani egy kijelzőt akinek már volt dolga SPI-vel legyenszíves nézze meg nekem ezt a kódot, hogy működik-e
Segítséget előre is köszönöm
Sziasztok!
AVR Studioban a külső kristályhoz tartozó fuse bitek beállításánál tehát arra kell figyelni, hogy a beállítást megelőzően már rá legyen kötve a kristály a procira ha nem akarjuk "kizárni" magunkat belőle?
Sziasztok!
12 MHz-es kristályról hajtom az Atmega8-ast melyen egy egyszerű ADC program fut 3x7 szegmenses kijelzőn megjelenítve a mért értékeket. A problémám, hogy miután átállítottam kvarcra az órajelet a konverter kicsit megkergült. 0.01-nél van az alaphelyzet és csak 4.86-ig jelenít meg értéket a kijelző. Azelőtt 0-5 V-ig hibátlanul működött (amikor még belső oszcillátorról ment). A programon semmit sem módosítottam. Mi lehet a gond? Esetleg a kristály okozna valamilyen interferenciát? Bár ez kétséges...
Szia!
Az adatlapon meg van adva, hogy mekkora a maximális mintavételezési frekvencia. (talán 15kSPS) E fölé nem érdemes menni mert fals értéket fogsz kapni. Az ADC prescaler bitjeivel tudod csökkenteni a mintavételezési frekvenciát.
Kicsit nehezen ertheto. A kristaly az kvarc, ezert is szokas kvarckristalynak hivni. A kerdes inkabb az, hogy a frekvencia valtozott-e vagy csak a forrasod?
Hello!
Igen valóban össze lehet keverni, konzekvensebben kellett volna használnom a kvarc megnevezést. A lényeg először belső oszcillátorról hajtottam a procit 8MHz-en majd után áttértem 12MHz-es kvarcra. Ekkor kezdődött a probléma. zolee1209-nek: Én is valami hasonlóra gondoltam amit írtál de visszaállítva belső oszcillátorra a fuse-t is produkálta ugyanezt. Minden esetre ki fogom próbálni amit mondtál!
Ha visszaallitottad es ugyan ugy jelentkezik a problema, akkor inkabb egy rejtett hibara gyanakodnek, amely most jott elo. Igy az aramkort nem ismerve, eloszor leellenoriznem a helyedben, hogy az I/O labra valoban 5V jut el es mondjuk nem egy vedo zener dioda fogja meg a feszultseget, ugyanis ezek nyitofeszultsege homersekletfuggo is. Ha az I/O labon 5V van, es megis 4.83V-ot mer, akkor mar erdekesebb. Ebben az esetben az ADC atalakitas nyers 10 bites eredmenyet irasd ki HEX-ben(vagy binarisan), hogy meg lehessen allapitani, hogy a kodban hol lehet hiba.
Sziasztok!
Tesztelgetném az Atmega8 TWI (I2C) modulját egy 24LC01B EEPROM-mal. Nem nagyon akar összejönni a dolog, "paraszt-debug" módszerrel vizsgálva úgy látszik megakad az adatbájt átvitelénél, onnantól már nem kap ACK bitet a proci az EEPROM-tól. Kérdésem elsőként az, hogy legális-e ha a következőképpen kérdezem le a TWSR regiszter értékét?
Vagy megvárom polling-gal míg be nem áll az elvárt értékre így:
(Az SCL előosztó bitek nullára vannak állítva) Köszi szépen!
Sziasztok!
Esetleg valaki meg tudna szánni egy AT32UC3A1128, -256 vagy -512-vel? Kifizetném szívesen, csak nincs kinek, mert sehol se lehet ezeket most beszerezni, nekem meg nagyon kellene egy Előre is köszönettel!
Csak AT32UC3A0512-vel tudnalak kisegiteni. (LQFP144)
Tiszteletem!
A robotika kezdőknek cikkben a szervos vezérlést hogy kell átírni (elég ha csak a főbb címzés változások megadására/megmutatásásra) egy atmega168-20pu-ra? Előre is köszönöm!
Az kar. Mondjuk en az AT32UC3C0xxx szeriat varom mar nagyon, de boltokban meg sehol sincs.
Viszont amit te keresel a farnell-nel van. Kb 2-3 nap alatt kezhez kaphatod toluk.
Ha esetleg rendelsz a farnell-tol es csokkenteni szeretned a koltsegeket, akkor szolj mert nekem AT32UC3B1128(3db) kene.
Sajnos a Farnell leghamarabb 47 nap múlva tud szállítani, azt se a 256-osból, ami kellene, de most az lenne a legkisebb gond.
Sziasztok!
Van egy Topi-féle HEKIT-301 (AVR-ISP) programozóm, amelyhez építettem egy "igen bonyolult" áramkört (ami a Topi-féle leírásban is található). Már három különböző időpontban ellenőriztem a vezetékezést, NYÁK-tervet, csatlakozókat, mert hiszen "az első dolgod mindig az legyen, hogy táp-föld és MOSI-MISO-SCK-RESET lábak helyesen vannak-e csatlakoztatva". Mérni nem tudom, mert ugyebár mindenféle ellenállások vannak jobbra-balra, néztem már processzorok nélkül is, de nincs se változás, se eredmény Elakadtam és ehhez kérnék valamiféle ötletet, hogyan tudnék innen elmozdulni Köszönettel: BB
A C-s sorozat tényleg jól néz kis spec alapján, majd valószínűleg áttérek én is arra. Farnell-nél szivesen szólok, csak én legtöbbet Fejér megyében vagyok.
Az alábbi helyen nézted már? A múltkor vásároltam náluk, igazán rendesek, és az atmega88 még olcsó is volt.
Bővebben: Link
Köszi, néztem, nekik sincs sajnos. Írtam még a többi cégnek is, amik az Atmel oldalán voltak, mint viszonteladók, csak azok nem válaszoltak. Mondjuk az Atmel se, amikor mintát kértem.
Sziasztok!
A HEStore-ban kapható GSM modulok esetében SMS-t AT-parancsokkal kell küldeni? Meg lehet csinálni ezt egy Atmega2561-el? Köszönöm előre is!
Sziasztok!
Van egy problémám, amire nem tudom, hogy hogy keressek rá a he fórumban, úgyhogy leírom, hátha tud valaki megoldást: Codevision AVR- ben programozok, a hardware egy atmega128. Sajnos csak az USART1 van kivezetve a panelrea (nem én terveztem). A probléma: Egy LM35 hőmérséklet szenzor megy a 0-ás ADC-re, ennek a 10 bites értékét szeretném küldeni soros portra, két byte-ban. Az itoa() függvény valamiért nem működik rendesen, próbáltam úgy is, hogy egy for ciklusban 0-tól 1000-ig adok be egy integert az itoa() függvénynek, majd az itoa()-ban megadott két byte-os char array-t küldöm egymás után a soros portra,de nagyon furcsa értékek érkeznek, erről csatoltam a forráskódot, a include-okat és hasonlókat nem másoltam be. [code=c] int val; unsigned char chval[5]; void main(void) { while (1) { for(val=0;val<=1000;val++) { itoa(val,chval); putchar1(chval[0]); putchar1(chval[1]); delay_ms(500); } }; } } És itt vannak a PC soros portján fogadott adatok: Data received: 048 000 Data received: 049 000 Data received: 050 000 Data received: 051 000 Data received: 052 000 Data received: 053 000 Data received: 054 000 Data received: 055 000 Data received: 056 000 Data received: 057 000 Data received: 049 048 Data received: 049 049 Data received: 049 050 Data received: 049 051 Data received: 049 052 Data received: 049 053 Data received: 049 054 Data received: 049 055 Data received: 049 056 Data received: 049 057 Data received: 050 048 Data received: 050 049 Data received: 050 050 Data received: 050 051 Data received: 050 052 Data received: 050 053 Data received: 050 054 Data received: 050 055 Data received: 050 056 Data received: 050 057 Data received: 051 048 Data received: 051 049 Data received: 051 050 Data received: 051 051 Ezek az értékek az első néhány érték, 0-ról indul elvileg a for ciklus. Kérem aki tud, segítsen! Köszönöm!>
Nem a karaktereket kuldi ki neked a putchar, hanem a hexa kodjat a karakternek. A 000 a string lezaro, a 048=0, 049=1, 050=2, es igy rendre.
1. A SIM300C-t megneztem neked, az AT paranccsal megy. De nezegesd meg az adatlapokat, kb az elso oldalon irjak.
2. Igen.
Az itoa()-nak nem kellene egy harmadik paraméter?
Köszönöm, mindenképpen megnézem, mert támadt egy ötletem.
SMS-sel kapcsolom a villanyt. De 300 km-re.
Hajra. (De szerintem meg 6000km-rol is menne)
Söt SMS sem kell hozzá - akár ingyen is megy....
Nekem SMS kell, mert több funkciót szeretnék! De ezeket majd később.
|
Bejelentkezés
Hirdetés |