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
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   777 / 777
(#) toma3757 hozzászólása Vas, 16:28 /
 
Sziasztok!

RGB vezérlőt szeretnék készíteni, atmega48pa ic-t használok és olyan problémába ütköztem hogy a 0-ás és a 2es pwm csatorna különbözően működik ugyan azokkal a beállításokkal.
Nem használok külső osztcillátort, nem módosítottam fusebiteket, szóval ha minden igaz ~1mhz az órajele az icnek, 1024es osztót használva 262ms pediódus időt kapok, ami nekem nagyjából megfelelő, (az egyik funkció a villogás).
A 0-ás csatorna tökéletesen működik, de a kettesnél mintha sokkal nagyobb lenne a frekvencia (szemmel még látható hogy nem egyenletesen világít).

Szóval az lenne a kérdésem, hogy ez miből adódhat?
Kódom:
  1. DDRD = 0xFF;
  2.          PORTD = 0x00;
  3.          DDRB = 0xFF;
  4.          PORTB = 0x00;
  5.         
  6.          TCCR0A = (1<<COM0A1) |(1<<COM0A0)| (1<<COM0B1) |(0<<COM0B0) |(1<<WGM01) |(1<<WGM00);
  7.          TCCR0B = (1<<CS02)|(0<<CS01)|(1<<CS00);
  8.          OCR0A = 128;
  9.          OCR0B = 128;
  10.         
  11.          TCCR2A = (1<<COM2A1) |(1<<COM2A0) |(1<<WGM21) |(1<<WGM20);
  12.          TCCR2B = (1<<CS22)|(0<<CS21)|(1<<CS20);
  13.          OCR2A = 128;


Köszönöm!
(#) Ivan93 válasza toma3757 hozzászólására (») Vas, 16:39 / 1
 
Szia! Timer2-nél az CSx=101 az 128-as osztás, CSx=111 lesz az 1024-es osztás. Nem egyforma a két timer regiszter-kiosztása, adatlapon nézd meg.
(#) pajti2 hozzászólása Vas, 23:19 /
 
Sziasztok!

A pk2avrisp-t használja valaki mostanában?
(#) akosnagy hozzászólása Hé, 11:45 /
 
Sziasztok!
Van egy ismeretlen paraméterű 10 csatornás PWM jelet adó eszközöm. Ha PNP MOSFET-et kötök rá (pl.: 2N3904) Gate-re rákötöm a PWM jelet, Drain-re 5V-ot, Source-t pedig rá küldöm egy ATMEGA328P analóg inputjára, akkor fogom tudni kezelni a bemenetet vagy szétcsapom valamelyik alkatrészt?
(#) csatti2 válasza akosnagy hozzászólására (») Hé, 11:53 /
 
Ennek fuss neki még egyszer. Nincs olyan, hogy PNP MOSFET (p-csatornás van, röviden pMOS). Az általad megadott alkatrész egy NPN bipoláris tranzisztor (nincs gate, source és drain se).
Próbáld meg optocsatolóval illeszteni. Akkor legfeljebb az optocsatoló szál el ha hülyeséget csinálsz.
A hozzászólás módosítva: Hé, 11:55
(#) akosnagy válasza csatti2 hozzászólására (») Hé, 11:56 /
 
Csak megtanulom lassan a dolgokat
Olyan MOSFET-re gondolok ami a meghajtott/szabályzott áramkör előtt van. P-channel-ként találtam neten. Remélem így már érthető mit akarok.
Mellékeltem egy képet, csak az elv miatt. Nálam a bemenő fesz 5V a mikrokontroller miatt.
A hozzászólás módosítva: Hé, 12:00

pBU4D.png
    
(#) csatti2 válasza akosnagy hozzászólására (») Hé, 12:01 /
 
Sejtem mire gondolsz, de a bekötésed nem működne (már csak azért sem, mert figyelmen kívül hagytad a belső diódát [body diode, intrinsic diode]).
Most nézem a linkelt képet, na ez kinyírná az ATMEGA-t biztosan.
Ami jobb választás, az egy NPN tranzisztor vagy egy N-MOSFET.
A hozzászólás módosítva: Hé, 12:02
(#) csatti2 válasza akosnagy hozzászólására (») Hé, 12:08 /
 
Lehetséges bekötések.
(#) akosnagy válasza csatti2 hozzászólására (») Hé, 12:09 /
 
Nagyon köszönöm!
Következő: »»   777 / 777
Bejelentkezés

Belépés

Hirdetés
Frissek
2017. Máj, 23. Kedd
5:13:13
Jelenleg 82 fő olvassa az oldalt
Online tagok:
Lapoda.hu     XDT.hu     HEStore.hu