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   672 / 839
(#) rolandgw válasza mrbini hozzászólására (») Jún 7, 2015 /
 
A 90. sorban miért foglaltál 20-as tömböt a 10 helyett ?
(#) Kovidivi válasza mrbini hozzászólására (») Jún 7, 2015 /
 
Ha nem állítod be a PORT-okat kimenetnek, akkor csak a felhúzó ellenállásokon fog folyni áram, esetleg a 150ohmod 150kohm. Mérd meg!
(#) mrbini válasza rolandgw hozzászólására (») Jún 7, 2015 /
 
A programot nem én írtam, letöltöttem.
Kovidivi
Az ellenállásokat megmértem még beforrasztás előtt.
Az egyik szegmens ellenállását kicseréltem 10R -re. Így sem túl erős.
(#) Sick-Bastard válasza freechat hozzászólására (») Jún 7, 2015 /
 
A 3.3V <--> 5V szint illesztés nem nagy gond. Sok logikai áramkör alkalmas erre a célra, vagy megoldható
FET-ekkel is.
(#) rolandgw válasza mrbini hozzászólására (») Jún 7, 2015 /
 
Az említett sort te írtad át,mert az eredetiben nem ez van. Notepad++/Compare
(#) Kovidivi válasza mrbini hozzászólására (») Jún 7, 2015 /
 
Akkor mérd meg ismét! Mondom: vagy a programban van a hiba, pl. PORT nincs kimenetre állítva, vagy simán teljesen hibás, vagy az ellenállás a rossz. Esetleg a tranzisztort kötötted be rosszul. Ideiglenesen vedd ki, és kösd GND-re a LED kijelzőt tranzisztor nélkül. Ekkor az összes kijelző képe egyszerre lesz látható azon a kijelzőn, teljes fényerővel! 10ohm nagyon kevés! 75 ohm alá csak kivételes esetben mennék.
(#) mrbini válasza rolandgw hozzászólására (») Jún 7, 2015 /
 
Tényleg nem nyúltam hozzá csak a PortB-et számoztam át.

Kovidivi
Meg mértem az ellenállásokat jók és a tranzisztorok is jól vannak beültetve.
(#) Kovidivi válasza mrbini hozzászólására (») Jún 8, 2015 /
 
Akkor marad a program. Azt nézd át!
Valószínűleg elrontottál valamit, pont a PORTB-n vannak a kijelzők. Legalább rakd fel a módosított programodat, hogy rá tudjunk nézni.
szerk: Látom már, felraktad. Ha csak ennyit változtattál tényleg, hogy a PORTB kiosztását átírtad, akkor annak is rendben kell lennie.
A hozzászólás módosítva: Jún 8, 2015
(#) mrbini válasza Kovidivi hozzászólására (») Jún 8, 2015 /
 
Itt van mind a kettő: Bővebben: Link
(#) kapu48 válasza mrbini hozzászólására (») Jún 8, 2015 /
 
Ne várj csodát ettől a programtól!

PORTD &= ~(1<<PIND6); //Kikapcsoljuk az 1. kijelzőhöz tartozó tranzisztort
2MHz-en nagyon hosszú ideig számól és addig nincsen semmi a kijelzőn:
PORTB = kijelzo[h%10]|(sec & 0x1); //Óra alsó helyiérték

Próbáld átszervezni:
Amíg számolsz addig világít az előző digit!
TempByte = kijelzo[h%10]|(sec & 0x1); //Óra alsó helyiérték
PORTD &= ~(1<<PIND6); //Kikapcsoljuk az 1. kijelzőhöz tartozó tranzisztort
PORTB = TempByte // rögtön megy ki a következő!

...
...

És vedd nagyobbra az értékét: #define GOMBCIKLUS 600 ???
Több idő marad a kijelzésre, 1 úttal lassul a gombok kezelése!
A hozzászólás módosítva: Jún 8, 2015
(#) mrbini válasza kapu48 hozzászólására (») Jún 8, 2015 /
 
Tudnál bemásolni egy pontos részletet, hogy mit hogyan kell beírni.
Nem vagyok nagy guru.
(#) kapu48 válasza mrbini hozzászólására (») Jún 8, 2015 /
 
  1. //Amíg számolsz, addig világít az előző digit!
  2. uint8_t TempByte;
  3. ...
  4. TempByte = kijelzo[h%10]|(sec & 0x1);   //Óra alsó helyi érték
  5. PORTD &= ~(1<<PIND6);   //Kikapcsoljuk az 1. kijelzőhöz tartozó tranzisztort
  6. PORTB = TempByte
  7.  PORTD |=  (1<<PIND5);                          //Bekapcsoljuk az 2. kijelzőhöz tartozó tranzisztort
  8.  delay(0xff);                                           //Várunk... közben a szám látszik a 2. kijelzőn
  9. // így tovább minden szegmenset
  10. ...
(#) mrbini válasza kapu48 hozzászólására (») Jún 8, 2015 /
 
Köszönöm!
Holnap megpróbálom.
(#) rolandgw válasza mrbini hozzászólására (») Jún 8, 2015 /
 
Egész más kódot kapsz a kijelzés függvénynél a tömb eltérés miatt. 109. sor !

kijelzo.PNG
    
(#) kapu48 válasza rolandgw hozzászólására (») Jún 8, 2015 /
 
Ez 1 értelmű! Ha megváltoztatod a programot más lesz a kód.

Különben tényleg felesleges lefoglalni 20Bytet ha csak 10Byte kel.
De ez még nem zavarja a működést, feltéve, hogy van elég memória.
(#) mark.budai hozzászólása Jún 8, 2015 /
 
Sziasztok! A segítségeteket szeretném kérni. Vettem a múlt héten egy Usbasp V2.0-t itt az apróban. Letöltöttem az extreme burner programot, és szeretnék egy Attiny26L típusú picet beégetni. Egyelőre 5V-ot adtam neki, de ez mindegy..
A Chip fülnél nem találtok Attiny26-ot, csak 13, 24, 44, 84, meg 2313 van. Mit tegyek? Nem támogatja az égetőm? Találtam frissített frimware-t, ha rövidre zárom a self programming jumpert, akkor egyszerűen betöltöm a programba a hexet, és beégetem? Ez bár USBasp, de nem úgy néz ki, mint az enyém, viszont ebben is Atmega8A van, csak az enyém egy kínai klón, de nagy baj gondolom nem lehet..
(#) csabeszq válasza mark.budai hozzászólására (») Jún 8, 2015 /
 
Az Avr8 burn-o-mat elvileg támogatja az Attiny26-ot.

De avrdude parancssorból is programozhatsz, ha nem megy másképp.
(#) dokidoki válasza csabeszq hozzászólására (») Jún 8, 2015 /
 
Az avrdude - van hozzá grafikus felület, ha visszariasztana valakit a parancssoros hebrigálás.
(#) pont válasza mark.budai hozzászólására (») Jún 8, 2015 /
 
A Bascom ingyenes program, támogatja attiny26-ot is és az USBASP-ot is, és tud csak hex. is égetni.
(#) mark.budai válasza pont hozzászólására (») Jún 8, 2015 /
 
Köszönöm, és a többieknek is.
Igen, az avrdude-tól a parancssoros programozás riasztott el, de kipróbálom a Bascom-ot, ez most elég szimpatikus.
(#) freechat válasza mark.budai hozzászólására (») Jún 8, 2015 / 1
 
A Bascom működni fog én is azt használtam a 26-osoknál.
(#) mrbini válasza rolandgw hozzászólására (») Jún 8, 2015 /
 
Visszaállítottam 10-re, de nem hozott eredményt.
(#) mrbini válasza kapu48 hozzászólására (») Jún 8, 2015 /
 
Remélem jól írtam be, de nem működik.
Órák nem látszanak a kijelzés halvány és nem számol az óra.

Próba2.c
    
(#) Kovidivi válasza mrbini hozzászólására (») Jún 8, 2015 /
 
Kipróbáltad, hogy kiszedted a tranzisztort? Írj egy aprócska programot, ami csak bekapcsolja tranzisztort, és hozzá néhány szegmenst. Ennek mennie kellene. Ha ez működik, akkor lehet tovább lépni. Ha már itt problémák vannak, akkor lehet IC csere kellene, vagy a nyákot átellenőrizni. Felesleges az egész programot nézni, le kell bontani kis részegységekre, és azokat, külön-külön kell tesztelni.
(#) mrbini válasza Kovidivi hozzászólására (») Jún 8, 2015 /
 
Nem szedtem ki a tranzisztorokat, de helyette kivetem az ic-t és egyesével végigpróbáltam a szegmenseket és tranzisztorokat. Kivétel nélkül mind megy rendesen.
IC van 4db új 2-ben kipróbáltam a programot. Mind a két esetben ugyan az a helyzet.
(#) kapu48 válasza mrbini hozzászólására (») Jún 8, 2015 /
 
Jaj-jaj!


Te minden szegmenst egyformára faragtál?

PORTB = eredetileg minden szegmensnél más képlet van itt!!!
Azokat kellene átemelni, ahogy mutattam.
Tehát a számítások mindenütt az eredetiek maradnak, csak 2 sorral feljebb kerülnek.
A hozzászólás módosítva: Jún 8, 2015
(#) Kovidivi válasza mrbini hozzászólására (») Jún 8, 2015 /
 
Akkor a nyákon levő hibák ki vannak zárva, az IC hiba ki van zárva, már csak a programozás maradt, esetleg FUSE bitek. Akkor kezdheted a PORTB bekapcsolását, akár ennyi is elég: PORTB=0xFF, ekkor 5V-ot kell kiadnia, a tranzisztor pedig lehúzza a GND-re, ha a PORTD megfelelő bit-jét is bekapcsolod.
(#) kapu48 válasza mrbini hozzászólására (») Jún 8, 2015 /
 
Még nem tudjuk, azt sem milyen típusú kijelzőid vannak!
Közös Anódú, vagy a Katódjuk közös? Mert nagyon nem mindegy melyiket, hogyan kötődbe!
(#) mrbini válasza Kovidivi hozzászólására (») Jún 9, 2015 /
 
Szerintem a FUSE bitek-nél sem hibáztam. 8-as osztó bekapcsolva.

kapu48
A kijelző VQE13
(#) Kovidivi válasza mrbini hozzászólására (») Jún 9, 2015 /
 
És kész van a két soros program, amit javasoltam?
Következő: »»   672 / 839
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