Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
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
Lapozás: OK   591 / 840
(#) kendre256 válasza hthom hozzászólására (») Feb 21, 2014 /
 
Te tulajdonképpen a napsugárzást szeretnéd mérni. Rakjál fel egy másik, akármilyen kicsi napelemet, ezt "zárd rövidre" egy kis értékű ellenállással. Ezen az ellenálláson a napsütéssel, a napelem rövidzárási áramával arányos feszültség lesz. A "nagy" napelem áramára ebből lehet következtetni (mindkettőt ugyanolyan intenzitással süti a nap). A kis napelem söntellenállásán keletkező feszültséget már ki tudod értékelni az AVR-rel.
(#) hthom válasza kendre256 hozzászólására (») Feb 21, 2014 /
 
Igen, pont ez volt a problémám.
Már arra is gondoltam hogy keresek egy olyan fogyasztót ami 2 A vesz fel és azt mérem, ha elérte a maximumot akkor átváltana a szivattyúra, amit megintcsak mérnék..., de ez bonyolult.

Ez a plusz napelemcella ötlet viszont biztatónak tűnik.
Köszönöm a segítséget!
(#) hthom válasza kendre256 hozzászólására (») Feb 21, 2014 /
 
Még egy kérdés.
Az ellenállás 2 vége közötti feszültséget hogyan tudom az AVR-re kapcsolni?
Műveleti erősítő?
(#) kendre256 válasza hthom hozzászólására (») Feb 21, 2014 /
 
Ha jól választod meg a napelem feszültségét, meg a söntellenállást, akkor közvetlenül az AVR bemenetére kötheted (megfelelő védelem persze nem árt, hogy a hosszú vezetéken villámláskor összeszedett túlfeszültség ne nyírja ki az AVR-t). Nekem egy napelemes kerti lámpából kiműtött napelem adja a pár voltos feszültséget egy PLC bemenetére, azzal "mérem" a sugárzott energát.
(#) hthom válasza kendre256 hozzászólására (») Feb 21, 2014 /
 
Úgy értem az ellenállásnak 2 kivezetése van ami között a feszültséget mérem, akkor mindkét végét az AVR-re kötöm? Egyiket az ADC-re, másikat a referenciára?
(#) lajos1969 hozzászólása Feb 21, 2014 /
 
Sziasztok!
Szeretnék egy kis segítséget kérni ha lehet. Ezt az órát élesztem éppen innen.
Bővebben: Link
Csak nagyon vibrálnak a kijelzők, valamit ír a fusebitekről de nem tudom, hogy mire állítsam, valaki meg nézné nekem? Köszönöm.
(#) kendre256 válasza hthom hozzászólására (») Feb 21, 2014 /
 
Igen, mindkét végét az AVR-re, az egyiket az ADC-re, de a másikat a földre!
(#) jenebala válasza lajos1969 hozzászólására (») Feb 21, 2014 /
 
Szerintem alacsony az órajel, belső órajelről megy az AVR ? Próbáld nagyobbra állítani, nem néztem meg a leírást de ha vibrál a kijelző lassú a kiírás ( multiplex).
(#) Black King hozzászólása Feb 21, 2014 /
 
Sziasztok!
(először is jelezném hogy kezdő vagyok a témában!) Segítséget szeretnék kérni. Építettem egy usbtinyisp programozót és egy ArrDrownHo arduino klónt. Úgy tűnik működik is rendesen a programozó mert ez alapján Bővebben: Link sikerült is ezt az egyszerű c progit ráírni Avrdude-al. Viszont akárhányszor felül írom valami mással semmi jelet nem mutat h működne. Próbáltam ráégetni bootloadert, de nem csinál semmit. Elvileg az arduino programból kéne tudnom ráégetni a sketcheket és a bootloader is....
az avr egy atmega328p 16mhz-es kristállyal az áramkörben és jelenleg ilyen fusebitekkel:
lf:ff
hf:d6
ef:5

Köszönöm előre a segítséget! D
(#) Black King hozzászólása Feb 21, 2014 /
 
* még az előzőeket kiegészítve ezt a hiba üzenetet szoktam az arduino programtól kapni :
avrdude: error: usbtiny_send: usb_control_msg: sending control message failed, win error: Az I/O művelet megszakítva. (Egy folyamat véget ért, vagy egy alkalmazás megszakította az I/O műveletet.)

(expected 128, got -116)
(#) lajos1969 hozzászólása Feb 21, 2014 /
 
Sziasztok!
Működik az óra, a gombokkal be is lehet állítani de nagyon hosszú idő múlva reagál a gombokra, biztos az órajel nem jó, de nekem ez már magas! Ennyi van a leírásban ( e1.. Mikroszámítógépes egység
 
 van · AVR mikrokontroller, használja a ATMEGA88-20 működő óra, a beépített RC oszcillátor a 8MHz
  van.
 • A Időzítő2 oszcillátor AVR, kristály, amely a forrása oszcilláció az óra, a 32.768KHZ Xtal
  kell kapcsolódni (is használják, mint XTAL1, XTAL2 tűs) TOSC2 terminál és TOSC1zeknek mennyi a low és high fuse bit??)
Meg még ennyi a fordítóval fordítottam de valakinek biztos mond valamit.
(A rendszer óra az AVR ATMEGA88, 1/8 előosztóval mert gyárilag engedélyezve, annak érdekében, hogy tiltsa meg, akkor kell átírni a biztosítékot bit az AVR. Változás az alábbiak szerint, hogyan átírni a következő oldalon a "6." És akkor átírják a biztosítékot kicsit. Fuse bit átírni  6. [ FusebitC jobb oldali oszlop] [ : 0 Oszt 8 Clock Enabled Ha rákattint, húzza le a jobb oldali    menü, mert [ 1 Clock Divide 8 mozgássérültek és válassza ki a.)
Köszönöm ha tud valaki segíteni!
(#) zombee válasza Black King hozzászólására (») Feb 22, 2014 /
 
Törölni próbáltad már az IC-t, program égetés nélkül?
Egy Doper megépítésével lehet hogy jobban jártál volna.
A hozzászólás módosítva: Feb 22, 2014
(#) Sajtqkac hozzászólása Feb 23, 2014 /
 
Sziasztok! Elméletileg ez a szerkezet működhet az AVR Studioval?

Erről lenne szó
(#) jenebala válasza Sajtqkac hozzászólására (») Feb 23, 2014 /
 
Szia, én úgy tudom AVR studio 4 el nem megy, 6 hoz külső programozóként tudod hozzá adni avrdude én keresztül(ez biztos működik mert én is használtam úgy).
Bár én szívtam ezzel a kínai csodával aztán vettem inkább egy AVR ISP MK2 használtan.

De van egy extreme burner avr nevű program az támogatja.
(#) fifadani hozzászólása Feb 24, 2014 /
 
Sziasztok!
Van egy program amihez 32.768 khz szükséges.
Ha először a fuse biteket állítottam be, hogyan tudom visszarakni 1MHz belsőre? Nem engedi a studio...
(#) fifadani hozzászólása Feb 24, 2014 /
 
Sikerült
(#) Szabi1 hozzászólása Feb 24, 2014 /
 
Sziasztok! Sorosporton keresztül szeretnék kommunikálni AVR-el és építettem egy max232cpe ic vel szint illesztőt, ki is próbáltam, a mérőműszer szerint helyesen átalakítja a jeleket, de ha windows alatt hyperterminal-al próbálom, a loopback nem működik... Valaki tudna segíteni? Amúgy megjegyzem a hyperterminal-t az xp cd-ről másoltam le, windows 8.1-em van, ha jelalakítás előtt zárom össze a vezetéket (TXD,RXD ) a loopback működik.
(#) bandita18 hozzászólása Feb 24, 2014 /
 
Sziasztok!
Miskolcon tud valaki segíteni nekem ATtiny85 égetésben?
(#) zombee válasza Szabi1 hozzászólására (») Feb 24, 2014 /
 
Akkor lehet hogy mégse működik a jelátalakítás, vagy be van kapcsolva a flow control.
Ez utóbbi a leírásod alapján(nyersen működik a loopback) kicsit valószínűtlennek tűnik.
Először mérj feszültséget a V+ és V- lábakon (és a föld között), +8V és -7V körül szokott lenni.
(#) Szabi1 válasza zombee hozzászólására (») Feb 24, 2014 /
 
8,9V van, amúgy ha simán rövidre zárom az RS232C részt akkor van hogy hülyeséget ír a PC az mitől van?
(#) esemve hozzászólása Feb 26, 2014 /
 
Elég buta kérdés lesz, de azért mert még nagyon kezdő vagyok. Atmega48 -on a D1 pin -t magasra állítom, majd a kimenetet ráengedem egy tranzisztor bázisára (BC547C). A tranzisztor kimenetére pedig sorosan bekötök egy kis 5V-os elektromotort, de szerencsétlen meg se mozdul Hallom, hogy belül picit zümmög, de még megforgatni se tudja magát Ha a tranzisztor bázisát VCC-re kötöm akkor meg megy. Mit rontok el?
(#) vzoole válasza esemve hozzászólására (») Feb 26, 2014 /
 
Ott rontottad el, hogy se programot, se kapcsolási rajzot nem mellékeltél.
(#) esemve válasza vzoole hozzászólására (») Feb 26, 2014 /
 
Bocsánat

  1. #ifndef F_CPU
  2. #define F_CPU 4000000
  3. #endif
  4. #include <avr/io.h>
  5. #include <util/delay.h>
  6. //-------------------------------------
  7. int main(void) {
  8. //-------------------------------------  
  9.     DDRD = (1<<PIND1);
  10.     while(1) {
  11.                         PORTD = 0xFF;
  12.     }
  13.     return 0;
  14. }


Az 5v az a ugyanoda van bekötve mint a vcc. A jel amúgy kijön, ha ledet kötök rá akkor szépen világít. Ha a tranzisztor bázisát az 5v-ra kötöm akkor meg a motor remekül forog. Ha meg így ahogyan a rajzon van akkor csak zümmög a motor és nem moccan meg.
A hozzászólás módosítva: Feb 26, 2014

kerdes.png
    
(#) kala1982a válasza esemve hozzászólására (») Feb 26, 2014 /
 
Bővebben: Link Google képkeresés: dc motor AVR. Bázis ellenállás kötelező, ha huzamosabb ideig szeretnéd , hogy működjön.
A hozzászólás módosítva: Feb 26, 2014
(#) Vacok válasza csabeszq hozzászólására (») Feb 26, 2014 /
 
Szia!

Pár oldallal ezelőtt egy tárcsás telefonhoz való konverterrel kapcsolatban tettem fel kérdést, akkor az órajellel volt a baj, most viszont az a gond, hogy sok hibával működik. Azóta már megépítettem kvarccal és a fuse biteket is beállítottam a képen látható módon. Ezt egy kalkulátorral állítottam be, amit az interneten találtam, viszont az az adott kristályhoz több beállítási lehetőség is tartozott, melyik a legmegfelelőbb?
Amúgy a gond az, hogy a DTMF jel, amit generál nem mindig jó, mintha nem mindig ugyanannyit számolna a pulse érintkező felől, ugyanannál a számnál néha más hangot ad ki. Okozhatja ezt a fuse bitek nem megfelelő beállítása?
(#) kapu48 válasza Vacok hozzászólására (») Feb 27, 2014 /
 
A „CKDIV8” Elől vedd ki a pipát!

Gondolom, nem szándékosan osztod 8-al az órajelet? Nagyon lelassítja a rendszert.

Ezt általában csak tesztelés kór használjuk, hogy jobban követhető legyen, mi történik.
(#) kapu48 válasza Vacok hozzászólására (») Feb 27, 2014 /
 
Hogy induláskór menyi órajelig maradjon resetben, és hány milisekundumig várjon a rendszered?
Azzal induláskór a környező perifériák feléledését várhatod meg.
(#) esemve válasza kala1982a hozzászólására (») Feb 28, 2014 /
 
Köszönöm, az volt a gond, hogy pwm-re kellett volna kötni...
(#) esemve hozzászólása Feb 28, 2014 /
 
Ha egy Attiny2313 -at 20mhz-en szeretnék járatni, bekötön neki a kristályt, akkor Bővebben: Link ezzel fogom tudni programozni ugye? (12mhz-es kristály van a programozóba, a nagy kérdésem az, hogy ez jelent-e problémát)
A hozzászólás módosítva: Feb 28, 2014
(#) Vfr72 hozzászólása Márc 1, 2014 /
 
Sziasztok!
A kérdésem a következő:
A program indulásakor a globális megszakítást engedélyezem "sei();',
de a program működése során néha le kell tiltanom 'cli();', de hatástalannak bizonyul, azaz továbbra is végrehajtódik a megszakítási rutin.
A programban egyenlőre csak egy megszakítást használok (UART), ezért gondoltam, hogy nem az UART megszakítását tiltom, hanem a globálisat.
Vázlatosan:
Ha beérkezett a megfelelő számú karakter, akkor a karakterek feldolgozásáig tiltom a karakterek fogadását, ezt úgy csináltam, hogy meghívok egy függvényt, amiben nincs más, csak a CLI(), ha végeztem a feldolgozással, akkor sei();.

javaslat, hogy mi lehet a gond?

üdv. VFR72
Következő: »»   591 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem