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
Most írtam, hogy figyelj oda a nem létező helyesírásodra és használd a kód gombot.
á köszönöm hogy szóltál előszőr nem értettem mire gondoltál a kód gombal kapcsolatban de most már világos
de ezzel sem jó itt is ha egyik igaz akkor már világít
Szuper, akkor már csak azt kell megértened, hogy van egy válasz gomb, amit ha használsz átláthatóbb a fórum, minden hozzászólás jobb felső sarkában található.
A helyesírásra meg azért érdemes odafigyelni, mert esetleg nem reagálnak a kérdésedre, vagy egyszercsak megunják, hogy kétszer-háromszor kell elolvasni a hozzászólásod, mire rájön az ember, hogy mit akarsz. ![]() Én így használom és működik:
Hali
itt ha PINA7 1 akkor igaz de azt hogy tudnám megoldani ha PINA7 1 de valamelyik másik is 1 akkor már hamis legyen ? pl:
Sziasztok !
ATmega 8-as vezérlővel építenék egyszerű kis áramköröket. A RESET lábat 0-ra húzva (leföldelve ahogy értelmezem) ugye újraindul a kontroller. Szükséges ellenállás ? Vagy simán egy nyomógomb és föld ? Köszi
Sziasztok egy olyan kapcsolást szeretnék csinálni ATTINY45 segítségével amin egy forgókapcsoló segítségével be lehet állítani 0,5; 1; 1,5; 2; 2,5 ;3 ;3,5; 4; 5; 6; 7;8 másodpercenként ad egy impulzust ami egy 4017-es IC segítségével reléket vezérel. Az egész kapcsolás egy külső jel hatására induljon el és az utolsó relé pedig kapcsolja ki. Nem tudom hogy ez megvalósítható-e? Ja és valaki nem tudná nekem felprogramozni az AVR-t (természetesen NEM ingyen) mer nem nagyon értek hozzá. Csak azért döntöttem az AVR mellet mert szeríntem egyszerűbben megvalósítható az elképzelésem és van itthon 5db ATTINY45-ös proceszorom. Válaszaitokat előre is köszönöm :worship:
Hali!
Előszöis mivel az ATTiny45-nek nincs annyi lába ahány kölönböző időintervallumot szeretnél ezért inkább a forgókacsoló helyett egypotmátert javasolnék ami feszültség osztóként lenne beköve és így az AVR-rel ADC-n tudnál feszültséget mérni, és gyakorlatilag így a poti csavargatásával "1024 db különböző értéket tudnál közölni az AVRrel..." Üdv! Barbár
Vagy mondjuk 12 db ellenállásból egy létrát össze lehetne állítani és a kapcsoló választaná ki, hogy a létra melyik pontja menjen az analóg bemenetre. De a potával mindenképpen egyszerűbb lenne.
![]()
Aha értem akkor egy potis változatról tudtok nekem egy rajzot csinálni az AVR-es részéről. Ami min 0,5 másodperctől kb 10 másodpercig tud impulzust szolgáltatni és egy 7szegmenses led kijelzőn jelzi a beállított értéket egy tizedes pontossággal. Ha esetleg ez túl sok egy attiny45-nek akkor másik AVR is jó lesz.
Üdv.: c4h10
Hát szerintem azt ne várd senkitől hogy a kész cuccot megcsinálja helyetted. Az úgy oké hogy ötleteket kérsz a megvalósításhoz, vagy ha elakadsz, de szerintem senki nem fog vele dolgozni helyetted. És egész jó kis projekt hogy beletanulj a mikrovezérlők világába. Amit csinálj szerintem:
Alap avr programozó építése (semmi extra max 5 alkatrész) Bascom vagy Avrstudió föltevése Mintaprogramok tanulmányozása, egy kis programozással való ismerkedés. A poti beolvasása + a hozzá való időzítés kiküldése egy 10 soros progi, azt megérted gyorsan. Aztán jöhet a kijelzés, kicsit húzósabb de nem akkora kaland. Ha elkezded egy kapcsrajzot összedobok ha akarod. ![]() Idézet: „Hát szerintem azt ne várd senkitől hogy a kész cuccot megcsinálja helyetted. Az úgy oké hogy ötleteket kérsz a megvalósításhoz, vagy ha elakadsz, de szerintem senki nem fog vele dolgozni helyetted.” Pontosan így van, ahogy mondod, nem akartam leírni, mert mindig csak ugyan azt hajkurásznám, pár oldallal visszább ugyan ezt leírtam egy másik kérésre. Ha még nem foglalkoztál az AVR-ekkel, akkor nem ilyennel kell kezdeni. Inkább LED villogtatással kezd, aztán Timer + LED villogtatás, aztán PWM LED vezérlés, ADC-PWM LED vezérlés, ha ezek már mennek, akkor jöhet amit szeretnél. Egyébként én máshogy oldanám meg. Bekötnék egy nyomógombot és azzal oldanám meg az idők változtatását, esetleg egy multiplexel vezérelt két digites kijelzőn kiíratnám, hogy éppen hány másodpercenként adja a jeleket. Egyébként akár egy 555-el is meg lehet csinálni. Bővebben: LinkBővebben: Link
Sziasztok!
Építek egy 4 csatornás hőmérőt ami 7 szegmenses kijelzőkre írja ki a c°-ot és a hőmérsékletet egy AVR ADC-jével olvasom be egy LM35-ösről. A programot Cpp-ben írom és nem tudom hogyan lehet egy változót, amiben van egy egész szám, történetesen legyen a 192-es. Szóval: int buff1 = 192; A kérdés pedig az lenne hogy, hogyan lehetne ezt az értéket számjegyeire bontani? pl: int buff1_egyes = valami; int buff1_tizes = valami; int buff1_százas = valami; a végeredmény pedig ez legyen: buff1_egyes : 2 buff1_tizes : 9 buff1_százas: 1 Remélem érthetően elmagyaráztam ![]() A válaszokat előre is nagyon nagyon szépen köszönöm!!!
Modulo-val:
Leírva:
Nézz utána a "modulo"-nak. 11 modulo 10 = 1 22 modulo 5 =2 Osztás utáni maradék. Modulo: %
Sziasztok!
Én az osztás helyett inkább bináris -> BCD átalakítást javasolnám. Az osztás elég időigényes munka, erre a feladatra sokkal hatékonyabb algoritmus is van, Bővebben: Link, vagy Link. Ez csak néhány művelet, míg az osztások szerintem simán tartanak 10x tovább... Üdv: Bálint
Köszönöm a segítséget! Maradékos osztással csináltam meg
![]() while(1) { ADC1=ReadADC1(); buff1 = ADC1*2.56; buff2 = buff1/100; buff2m = buff1%100; buff3 = buff2m/10; buff3m = buff2m%10; } ui: Tudom hogy van válasz gomb de többen segítettetek és nem tudtam kinek válaszoljak ![]()
Ha egy függvényt akarsz meghívni egy számmal, de számjegyekre bontav...
ez is egy megoldás (lényegége ugyanaz)
Sziasztok !
Egy Atmega 8-as procit csak nagyon titkán és nehezen, vagy egyáltalán nem tudok felprogramozni. Programers Notepad-ot használok, a kontrollerre felölti, vissza is olvassa de valamit mindig hibázik, és végeredményben nem működik a dolog. A programozó egy maszek' stk-200-as, hagyományos nyomtató portos. Mi lehet a gond ? (lábak jól van bekötve) Köszi
Én kontakt hibára tippelek, de az is lehet, hogy a programozód a hibás. Ha jobban akarsz foglalkozni az AVR-ekkel, akkor ajánlom az AVRISPmkII-t.
Az eszközbe amit csináltam, 0 Ohm-os ellenállást tettem be átkötés helyett, 2 programozó láb is így van megoldva. Ez kihathat a programozásra ?
Nem! Esetleg túl hosszú vezeték, vagy rossz proci? Másikkal is ezt csinálja?
A panelen a programozó "erek" kb. 4-5 centi hosszan futnak a prociig. Másikkal nem tudom kiprobálni, csak egy AVR-t vettem.
És a programozó kábel 35 centi hosszú
És megnézted már, hogy van-e kontakt hiba?
Igen, leellenőriztem. A programozóba 100 Ohm-os ellenállást raktam, szerintem ezzel sem lehet gond.
Teljesen véletlenszerűen egyszer feprogramozza, másszor meg nem.
Akkor meg programozó hiba. Vegyél egyet, vagy csinálj másikat.
Utánanéztem ennek a BCD átalakításnak. Remek! Köszi az ötletet.
|
Bejelentkezés
Hirdetés |