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
Üdv mindenkinek!
AVRStudió 4-ben milyen beállításokkal kell dolgozni ahhoz hogy külső kvarcról tudjam hajtani az ATtyni45-ös procit? előre is kösz
Csak ISP-vel tudod az ATTiny45-ör felprogramozni.
Azaz kell egy olyan égető, ami tud ISP-t, és az AVRStudio is ismeri. Ha ilyened van, akkor a connect után menj rá a FUSES részre. Ott megtalálod. Ha nincs ilyened, akkor nyomtatóportos ISP+PonyProg kell. Ott rámész a lakatra(fuses), és a CKSEL kezdetű biteknél kiveszed a pipát. Ha a FUSE átállítás alatt nincs kvarc a lábakon, akkor hibát jelez a PonyProg(meg az AVRStudio is), de ez nem baj, mert az ISP-n keresztüli ellenőrzés csak akkor megy, ha a kontrollered is ketyeg(ellentétben a JTAG-el). Jah, kérdezte valaki a nyomtatóportos ISP-t. PonyProg felismeri, AVRStudio nem. Csatolom.
Szia!
Köszi a segítséget, van kijelzőm az nem probléma, megnéztem a kapcsolást az is egyszerű. A programot viszont nem találtam, megtennéd, hogy elküldöd nekem? Megnézném, hogy tudnék-e vele kezdeni valamit. De ha nem, akkor elküldeném a nyákot rajta az IC-vel (borítékban elfér). De akkor úgy tervezném a nyákot, hogy tüskesort tennék a nyákra, feltéve, ha meg tudod mondani, hogy ennél az IC-nél mely lábak a programozó bemenetek. Vélemény? Köszönöm.
Nem tudom milyen programra gondoltál!
EBBEN a hsz-ben van egy egyszerű égető és hozzá egy program! A mikrovezérlő firmware INENN tölthető le a fordulatszám mérőhöz. Az AtMega8-ból ha TQFP tokozásút használsz, akkor az ISP lábak a következők: 3-5-21 GND (30-as is a rajz szerint) 4-6 VCC (10,18) 15 MOSI (Master Output Slave Input) 16 MISO (Master Input Slave Output) 17 SCK (Serial Clock) 29 Reset (10-15Kohm-on felhúzva VCC-re!) Ezeknek a lábaknak közvetlenül az ISP (tüskesorra) kell menniük! Tüskesor helyett ilyen kis áramkörnél érdemesebb csak forrszemeket csinálni, mert ha egyszer fel van programozva, akkor olyan, mint a Linuxos gép, a szoftver addig megy, amíg van alatta élő hardver!
Köszönöm a választ, kiszúrta a szemem a progi, bocs. Felraktam a gépre, megpróbálok valamit kisilabizálni belőle. Ennek a kis áramkörnek mennyi a tápfeszültsége? Ha elakadok, kérdezhetek tőled?
Köszi
Nincs mit!
A mikrovezérlő adja meg a minimális és maximális tápfeszt, ami az adatlap szerint: Operating Voltages – 2.7 - 5.5V (ATmega8L) – 4.5 - 5.5V (ATmega8). Esetünkben az áramkör egy CR2032 típusú 3V-os lítium elemről van megtáplálva, kb. 3,3V-ra van pufferelve a 10µF-os elkóval. De az áramkör 5V-os táplálással is működőképes! A két kép jól mutatja, hogy kis PAD-okra vannak kivezetve a programozáshoz szükséges pinek. Természetesen, segítek amiben tudok!
Várj, elbeszéltünk egymás mellett. Én a programozó áramkörről beszélek. Te feltettél egy kapcsolást 74LS244N-tip IC-vel, feltételezem hogy az AVRISP 5. 0 progi ehhez szükséges.
Ezen a kapcsoláson nem látok táp bekötést, a gépről kapja? Ezt a kapcsolást építeném meg hogy megbirkózzak a programozással.
Ja értem! Annak az áramkörnek nem kell önálló tápegység, a programozandó céláramkörből veszi a működéshez szükséges áramot.
Ha viszont alacsonyabb tápfeszültségű áramkört akarsz programozni vele, ahogy nézem a 74xx244 adatlapokat, érdemes abból 74AHC244-et beszerezni, mert ez már 2V-nál is elindul, vagy a kijelzőt kiiktatva a programozás idejére 5V-tal megtáplálni.
Értem, tehát mondjuk a fordulatszámmérő panelra, adok 5 voltot (vagy 3 volton is lehet programozni?) és ez elég a programozáshoz. Akkor elkészítem ezt a programozót, aztán meglátjuk. Köszönöm hogy szántál rám egy kis időt, és segítettél. Most lépek, jó éjt neked.
Szia!
Előbb megpróbálhatod majd 3V-on is , ha nem megy csak akkor próbáld ki 5V-on, de a kijelzőt kiiktatva mert a telefonban is max csak 3,6V van!
Jó éjt!
Sziasztok!
Segítséget szeretnék kérni tőletek! Azt a feladatot kaptam, hogy egy LED fényerejét változtassam PWM jellel AVR segítségével. A helyzet a következő: Adott egy nyomógomb, ennek nyomkodásával kell fix PWM kitöltési tényezőket állítgatni. Mégpedig úgy, hogy: 1.megnyomás: 0%-os kitöltés 2.megnyomás: 30%-os kitöltés 3.megnyomás: 60%-os kitöltés 4.megnyomás: 90%-os kitöltés A következő megyomásra kezdődne minden előlről. Topi cikkéből kiindúlva ATTINY45-re gondoltam, mert kicsi, olcsó, és van benne hardveres PWM. Sajnos programozói tudásom nulla, az AVR-el lelkivilágát pedig csak most kezdem megismerni. A cikkben leírt kód alapján próbáltam kiindúlni, sajnos nem sok sikerrel. Addig eljutottam, hogy szerintem nem kell a while ciklus. De sajnos ennyi. Aki tud, legyen kedves segítsen nekem .Előre is köszönöm a segítséget.
Ha ez a Te feladatod es Mi megoldjuk, az Neked jo ? Programozas es HW ismeret nelkul sem ez sem mas feladat nem fog menni, ugy hogy mar regen el kellett volna kezdeni az ismerkedest ezzekkel.
Félreértés ne essék, semmilyen anyagi előnyöm nem származik a dologból, egy barátom életét szeretném megkönnyíteni, szülinapjéra lenne.
En sem rossz indulatbol irtam. Azt hittem suli feladat, es ha az, akkor tovabbra is ervenyes a fenti.
Nincs még vége a sulinak?
Szia!
Összedobtam neked gyorsan egy kis programot, lehetett volna a gombvizsgálatot switch-case szerkezettel is, de szerintem ez megfelel neked. Ha van benne hiba, akkor azt majd javítjuk. Csatoltam. Üdv!
Nagyon köszönöm a segítségedet, szombaton ki is tudom próbálni. Azt meg tudod mondani, hogy mekkora pwm jel frekvenciája?
Üdv mindenkinek.
Gondoltam, veletek is megosztok pár képet a készülő induktivitásmérőmről. Egyelőre csak frekvenciát mér(100uH+3.3nF).
Hát ha a belső RC-oszcillátort használod, akkor F_CPU/1024. Ezt programozáskor tudod kiválasztani, lehet 1,2,4,8 MHz.
Szia!
Gyorsan össze is raktam próbapanelon, és fel is programoztam. Minden tökéletesen megy, egy picit módosítottam a prellmentesítés delay-én, illetve a kitöltési tényezőkön is. Még egy kérdésem lenne. Ezt a pwm frekvenciát nem lehetne tovább osztani? Ugyanis beállítottam 1MHz-re az órajelet, mert nekem olyan 100-120Hz lenne jó PWM frekinek, de akkor nem igazán működött jól az áramkör, A gomb lenyomására teljesen meghülyült a led, nem úgy változott a fényerő ahogy az kellett volna. Köszönöm, és üdv.
Ha külső órajelről hajtod, akkor a külső órajel és az előosztás függvényében tudod használni a pwm-et. Ha csinálsz inverterből egy ~150kHz-es rc oszcillátort, az tökéletes lesz. Persze ennek a frekvenciája nem lesz annyira stabil, de egy LED-en nem igen fog meglátszódni.
De a program elején az órajel definicióját át kell írni az általad használt frekire, mert így marad meg a "pontos" időzítésed. Így pl.: #define F_CPU 150000 UL
Sziasztok!
Van egy stk500-es kitem, és biztos nagyon kezdő a kérdés, de mert van az, hogy (egy példa alapján) ha ser Temp, majd out DDRB, Temp-et küldök, akkor minden LED kialszik, míg ha clr Temp-et küldök akkor minden LED világít. Én azt gondolnám, hogy mivel a 0 a low, és az 1 a high, ez utóbbi esetben kéne aktiválódnia a LED-nek. A ser Temp-re xFF, azaz b11111111 lesz az ertek, és még is pont erre alszik ki minden LED ?
Akkor kéne ilyet csinálnia, ha a LED fordítva van bekötve és a másik lába a plusz feszültségen van.
ITT van az a motyó, amit sehogyan sem sikerül működésre bírni. Az már biztos, hogy a szoftverben van a hiba.
Ablaktörlő időzítő. A működés módja az lenne, hogy a "WIPER_SWITCH"-re egy pillanatra pozitív feszültséget kötve a relé behúz egy pillanatra és ezzel egy időben elindul az időzítő. Amikor "WIPER_SWITCH" megint feszültséget kap, ami rajta is marad, az időzítő megáll és a relé ismét behúz egy pillanatra. Innentől a relé olyan időközönként húz be egy pillanatra, ami a két rákapcsolás közt eltelt. Innentől csak akkor változna az időköz, ha a tápot elvesszük (levesszük a gyújtást), mert ilyenkor visszaáll az alapértelmezett időre. Illetve akkor, ha újabb időt állítunk be. A betanítás kezdetéhez a kapcsolót csak egy pillanatra (kevesebb, mint 2 mp) kell kapcsolni. Ha tovább marad bekapcsolva, akkor vagy egy előzőleg beállított időközönként kell a relének behúzni (ha a gyújtás ráadása után már végeztünk betanítást), vagy az alapértelmezett időközönként kell behúznia. Ez lenne az elmélet, de nem akar működni. A következők a problémák: A relé túl sokáig marad behúzva. Kb. 3-4 mp, ami túl sok, mert ennyi idő alatt az ablaktörlő két törlést is végezhet egymás után. Kb. 1-1,5 mp kellene. A másik gond, hogy hiába csinálom meg az időzítő betanítást, nem az elméletileg beállított időközönként húz be a relé, hanem mindig ugyanolyan időközönként, ami kb. 45mp (nem mértem le). Ugyanakkor minden második, a "WIPER_SWITCH"-re való feszültség ráadásakor a relé nem csinál semmit. Tudna valaki segíteni?
Fuse biteknel mit javasol? Fontos hogy az legyen amit ajanl.
Ha ez sem oldja meg, en hagynam..
Annyira nem tűnik bonyolultnak a dolog (csak nekem az).
Pont azért választottam ezt, mert eléggé egyszerűnek tűnik (kevés alkatrészből áll) és gondoltam, hogy csak nem csúszik be valami hiba. Feltételeztem, hogy maga a kód jó. Nem is túl hosszú. Ami időzítésbe beleszólhat, az a s frekvencia, ami 9.6MHz.
Ha nem voltak a fuse bitek allitgatva, akkor 9.6MHz az alapbeallitas.
Ma valahogy nekem sem akar menni a dolog.
Atiny13 -ra atraktam az iButton drivert. Hogy nyitot draint kapjak az MCUCR/PUD -t 1-be allitom, es kulso felhuzo ellenallas van az iButton porton. Olvasas utan a PUD-t visszaallitom 0-ra. Megsem nyikkan ugyanaz a driver ami mar tobb gepben kitunoen mukodik 2313 -on. |
Bejelentkezés
Hirdetés |