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   575 / 840
(#) HöTö válasza vzoole hozzászólására (») Nov 19, 2013 /
 
Ezeket a beállításokat hol érem el az Atmel Studio 6.0-ban?
(#) csabeszq válasza HöTö hozzászólására (») Nov 19, 2013 /
 
Ez hogyan fordult neked?

  1. sprintf(buf,%1.4f,x);


Idézőjelbe kellene a %1.4f-et írni.
(#) 06smici hozzászólása Nov 19, 2013 /
 
Sziasztok
Olyannal találkoztatok már, hogy port egyes lábai nem adnak le áramot? Jelenleg LED-ek vannak rákötve portra, amelyik lába működik ott 4,95V és 4,5mA van. De pár meg csak halványan világít 4,75V-nál 90uA-t ad ki magából. Van rá esély hogy ez csak valami szoftveres hiba lesz?

Múltkor próbapanelól kötöttem rá ezt azt, könnyen meglehet hogy ott valami összeért aminek nem kellett volna. De az érdekesség a dologban, hogy ezek a lábak között vannak az ISP lábai is, amin keresztül programozni tudom. És a másik dolog, hogy a programozó se volt lehúzva róla teszt közben és az meg működik (mondjuk legközelebb asszem erre jobban figyelek majd)

Van valami ötletek mi okozhatja a hibát? Elég drágáért adják az IC-ket, ha nem fontos nem vennék újat.
(#) vzoole válasza 06smici hozzászólására (») Nov 19, 2013 /
 
Melyik IC melyik lába volt?
(#) 06smici válasza vzoole hozzászólására (») Nov 19, 2013 /
 
mega644 portB 2-7 lábai. A portB többi lába megy, a portD, portC-t néztem még azok működnek.
(#) vzoole válasza 06smici hozzászólására (») Nov 19, 2013 /
 
Hát akkor nincs tippem, hacsak nem a PORT-C 2-7 nem stimmel, mert oda van kivezetve a JTAG.
Alapból engedélyezve van... a fuse biteknél lehet kikapcsolni, hogy normál i/o lábként működjenek.
(#) TavIR-AVR válasza 06smici hozzászólására (») Nov 20, 2013 /
 
Hardwareből is tiltható a JTAGEN fusebittel és/vagy a szoftveresen is van regiszterírással erre mód.
(#) 06smici válasza TavIR-AVR hozzászólására (») Nov 20, 2013 /
 
Közben rátöltöttem egy régebbi programot, azzal hiba nélkül megy, minden kimenet működik.
Úgyhogy most már tippem sincs mi lehet a baja. DDRB 0xFF-be van állítva itt is, és ráadásul PORTB-t csak a mainből írom egyszer, utána sehol nincs a programban.
(#) zombee válasza 06smici hozzászólására (») Nov 20, 2013 /
 
Lehet hogy a fordítónak más IC-t adtál meg. Ezt nem az égetéskor adod meg, hanem a Project Options részben. Na meg az SPI is ezeken a lábakon van, azaz ha bekapcsolod a programban akkor a lábakat másra nem tudod használni.
(#) 06smici válasza zombee hozzászólására (») Nov 20, 2013 /
 
Az SPI-hoz nem nyúltam, azon csak a programozó van. Az IC is jól van beállítva. Timerekkel lesz valami gubanc.
Külön programban nekiálltam részenként végignézni, ott a TIMER1-el volt baj. Elnéztem és overflowra állítottam compA helyett, utána már működött rendesen. Na de mikor ezeket a módosításokat megcsináltam az eredeti programban is, az továbbra se ment. Azt meg már végkép nem értem, hogy ugyan annál az előosztásnál mért hívódott meg gyorsabban a megszakítás overflow-nál mint mikor OCRA-ra komparáltam.

Úgyhogy próbálgatom tovább hátha meglesz a többi hiba is
(#) 06smici válasza 06smici hozzászólására (») Nov 20, 2013 /
 
Esetleg még amivel probléma lehet, hogy két timert használok. Timer0-át használom 7szegmenses kiaratáshoz meg később majd gombok kezelésére, és a 16bites Timer1-ből pedig egy 1sec-es megszakítást az órához. Elvileg kettő mehet együtt és Timer1 a nagyobb pioritásu mivel az van előrébb a megszakítás vektortáblán, de ezekben már nem vagyok 100%ig biztos.

berakom a kódot is hátha ti látjátok benne elsőre a hibát. De asm-ben kell írnom, ami hibakeresést nagyban nehezíti...
  1. .include "m644pdef.inc"
  2. .dseg
  3. .org 0x100
  4. digit: .db 8
  5.    
  6. .cseg
  7. .macro port_init
  8.                 ldi r16, 0xFF
  9.                 out ddrb,r16
  10.                 out ddrc,r16
  11.                 out ddrd,r16
  12.                 ldi r16,0x00
  13.                 out ddra,r16
  14. .endmacro
  15.        
  16. .macro stack_init
  17.                 ldi r16,high(RAMEND)
  18.                 out sph,r16
  19.                 ldi r16,low(RAMEND)
  20.                 out spl,r16
  21. .endmacro
  22.  
  23. .macro timer1_init
  24.                 ldi r16, 0
  25.                 sts TCCR1A,r16
  26.                 ldi r16, 0b00001011             ;64es előosztó, CTC mód
  27.                 sts TCCR1B,r16
  28.                 ldi r16,0x7A
  29.                 sts OCR1AH,r16                  ;komparálás 31249-re (1sec)
  30.                 ldi r16,0x11
  31.                 sts OCR1AL,r16
  32.                 ldi r16,2                               ;compare A Match interrupt enable
  33.                 sts TIMSK1,r16
  34. .endmacro
  35.  
  36. .macro timer0_init
  37.                 ldi r16,0b00000011              ;fast PWM (0xFF-ig)
  38.                 sts TCCR0A,r16
  39.                 ldi r16,0b00000010              ;8as előosztás (512us)
  40.                 sts TCCR1B,r16
  41.                 ldi r16,1                               ;timer megszakítás engedélyezése
  42.                 sts TIMSK0,r16
  43. .endmacro
  44.  
  45. ;.def digit0 = r2
  46. .def case_r = r4
  47. .def digit_r= r5
  48. .def dot        = r6
  49. .def ciklus     = r21
  50. .def led        = r22
  51. .def mp         = r23
  52. .def min        = r24
  53. .def ora        = r25
  54.  
  55.  
  56.  
  57. .org 0x00
  58.         rjmp main
  59.  
  60. .org 0x1A
  61.         rjmp TIMER1_compA
  62.  
  63. .org 0x24
  64.         ;rjmp TIMER0_ovf
  65.  
  66. ;############################################
  67. ;#                                      MAIN                                    #
  68. ;############################################
  69.  
  70. .org 0x100
  71. main:                   port_init
  72.                                 stack_init
  73.                                 timer1_init
  74.                                 timer0_init
  75.                                 eor mp,mp
  76.                                 eor min,min
  77.                                 eor ora,ora
  78.                                 ldi ciklus, 4           ;kiiaratás időzítése interuptban (2ms)
  79.  
  80. ;-----------------------------------------------------------------------------
  81.                                 ldi Zh,high(digit)      ;digit vezérlő értékek feltöltése
  82.                                 ldi Zl,low(digit)
  83.                                 inc Zl
  84.                                 ldi r16,128
  85. feltolt:                st Z+,r16
  86.                                 inc Zl
  87.                                 ror r16
  88.                                 sbrs r16,3
  89.                                 rjmp feltolt
  90.  
  91.                                 sei
  92.  
  93. ;----------------------------------START---------------------------------------
  94. start:                  ldi XL, 0                       ;előző érték összehasonlítása
  95.                                 ldi Xh,2
  96.                                 ld r16,X
  97.                                 cp r16,min
  98.                                 breq start
  99.  
  100.                                 ldi r16,0
  101.                                 sts TIMSK0,r16          ;kiiaratás lekapcsolása új digit számolásakor
  102.                                 st x+,min                       ;új érték elmentése
  103.                                 st x,ora
  104.  
  105. ;----------------------------------------BCD-----------------------------------                
  106.                                 ldi Zh,high(digit)      ;digit kódjának tárolása
  107.                                 ldi Zl,low(digit)
  108.                                 inc Zl
  109.                                 ldi r16,10
  110.                                 eor digit_r,digit_r
  111.  
  112. min_t1:                 sub min,r16                     ;perc tizes helyiérték
  113.                                 inc digit_r
  114.                                 breq min_t2
  115.                                 brcc min_t1
  116.                                 dec digit_r
  117.                                 add min,r16
  118. min_t2:                 call case
  119.                                 st Z+,led
  120.                                 inc Zl                                                 
  121.                                 mov digit_r,min         ;perc egyes helyiérték
  122.                                 call case
  123.                                 st Z+,led
  124.                                 inc Zl
  125.                                                                
  126.                                 eor digit_r,digit_r     ;óra tizes helyiérték
  127. ora_t1:                 sub ora,r16                    
  128.                                 inc digit_r
  129.                                 breq ora_t2
  130.                                 brcc ora_t1
  131.                                 dec digit_r
  132.                                 add ora,r16
  133. ora_t2:                 call case
  134.                                 st Z+,led
  135.                                 inc Zl                                                         
  136.                                 mov digit_r,ora         ;óra egyes helyiérték
  137.                                 call case
  138.                                 st Z,led
  139.                                 ldi Zl,low(digit)       ;visszaállítás tömb első elemére                                                                                         
  140. ;-----------------------------------------------------------------------------
  141.  
  142.                                 ldi r16,1
  143.                                 sts TIMSK0,r16                         
  144.                                 rjmp start
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151. ;############################################
  152. ;#                      digit érték szubrutin                 #
  153. ;############################################
  154.  
  155. case:           ldi led,0
  156.                         mov case_r,led
  157.                         cpse digit_r,case_r
  158.                         rjmp egy
  159.                         ldi led,63
  160. egy:            inc case_r
  161.                         cpse digit_r,case_r
  162.                         rjmp ketto
  163.                         ldi led,6
  164. ketto:          inc case_r
  165.                         cpse digit_r,case_r
  166.                         rjmp harom
  167.                         ldi led,91
  168. harom:          inc case_r
  169.                         cpse digit_r,case_r
  170.                         rjmp negy
  171.                         ldi led,79
  172. negy:           inc case_r
  173.                         cpse digit_r,case_r
  174.                         rjmp otos
  175.                         ldi led,102
  176. otos:           inc case_r
  177.                         cpse digit_r,case_r
  178.                         rjmp hat
  179.                         ldi led,109
  180. hat:            inc case_r
  181.                         cpse digit_r,case_r
  182.                         rjmp het
  183.                         ldi led,125
  184. het:            inc case_r
  185.                         cpse digit_r,case_r
  186.                         rjmp nyolc
  187.                         ldi led,7
  188. nyolc:          inc case_r
  189.                         cpse digit_r,case_r
  190.                         rjmp kilenc
  191.                         ldi led,127
  192. kilenc:         inc case_r
  193.                         cpse digit_r,case_r
  194.                         rjmp vege
  195.                         ldi led,111
  196. vege:
  197.                 ret                    
  198.  
  199. ;############################################
  200. ;#                              TIMER1_compA                            #
  201. ;############################################
  202.  
  203. TIMER1_compA:
  204.                                 cli
  205.        
  206.                                 inc mp
  207.                                 cpi mp,60
  208.                                 brne end_int1
  209.                                 eor mp,mp
  210.  
  211.                                 inc min
  212.                                 cpi min,60
  213.                                 brne end_int1
  214.                                 eor min,min
  215.  
  216.                                 inc ora
  217.                                 cpi ora,24
  218.                                 brne end_int1
  219.                                 eor ora,ora
  220.  
  221.                                 ldi r17,0x80            ;dot maszk
  222.                                 eor dot,r17
  223.                                
  224. end_int1:               sei    
  225.                 reti
  226.  
  227.  
  228. ;############################################
  229. ;#                              TIMER0_ovf                                      #
  230. ;############################################
  231.  
  232. TIMER0_ovf:             dec ciklus
  233.                                 brne end_int0
  234.                                 ldi ciklus,4            ;2ms
  235.                                 sbrc Zl,3                       ;ha Zl=8(Z=0x108) akkor vissza kell állítani Z-t 0x100ra
  236.                                 ldi Zl,low(digit)
  237.                                 cpi Zl,4                        ;ha ez a 2. digit, akkor hozzáadjuk a dot értékét
  238.                                 brne next
  239.                                 ld digit_r,Z+
  240.                                 add digit_r,dot
  241.                                 out PORTD,digit_r
  242.                                 rjmp kiir                      
  243. next:                   ld digit_r,Z+  
  244.                                 out PORTD,digit_r
  245. kiir:                   ld digit_r,Z+
  246.                                 out PORTC,digit_r
  247. end_int0:                      
  248.                 reti
(#) zombee válasza 06smici hozzászólására (») Nov 20, 2013 /
 
Csak apró lépésekkel előre. Ha nem vagy biztos egy kódrész működőképességében, ugord át vagy előtte állítsd le az egész program működését. Utóbbit kb. így:
  1. stop:
  2.   rjmp stop


Na meg a másik: túl sok a makró, nem szeretjük! Helyette szubrutint(függvényt) illik használni. A stack init részt egyből a "main" legelejére kell tenni, ne rakd külön makróba!
  1. port_init:
  2. (...)
  3. ret
  4.  
  5. (...)
  6. rcall port_init
  7. (...)
(#) 06smici válasza zombee hozzászólására (») Nov 20, 2013 /
 
Igen én is így lépésenként nézegetem, szép lassan haladok vele. Mondjuk eddig kikommenteztem a feles részeket, de így megállítani egyszerűbb lesz.

A makrókat meg mi úgy tanultuk, hogy a fordító egy az egyben bemásolja oda a kódrészletet ahol meg van hívva a makró. Ezért is csak inithez raktam mert ha pl olyan van amit többször meghívok akkor az már szubrutinba megy. Bár azon kívül hogy átláthatóbb lesz tőle a kód más előnyéről nem tudok a makrónak.
(#) zombee válasza 06smici hozzászólására (») Nov 21, 2013 /
 
Makrókat nem szokás úgy tanítani hogy "átláthatóbb lesz a kód". Ez egyébként igaz, én is
folyamatosan használok ilyet, de egy kezdőt pillanatok alatt össze lehet velük zavarni.
A rövid (1-2 soros) makrókat azért jó ha megtartod, pl. portbeállításnál jobban néz ki.
(#) Massawa válasza 06smici hozzászólására (») Nov 21, 2013 /
 
A makrok fö elönyét abban látom, hogy egyszer kidolgozol egy bizonyos lépést, amit aztán késöbb mindig a makro kezel ( pl. én gyakran használok word-ket, amikhez makroban egyszer megirtam azokat a lépéseket, amit a word-ökkel általában tenni kell - hogyan irod öket a regiszterekbe stb.) .
(#) zsuscsinyo válasza zombee hozzászólására (») Nov 22, 2013 /
 
Makró: gyorsabb program futás, viszont nagyobb kódot generál ha többször használjuk (egyszerűbb kifejezéseket szoktak makróban megírni)
Szubrutin: Lassabb mivel ugrásokat tartalmaz, viszont kisebb kódméret gyakori használatnál
(#) vandorr hozzászólása Nov 24, 2013 /
 
64bites Win8 alá megoldható a Topi féle AVR Doper driver telepítése?
Sehogy se jön össze nekem. Eszközkezelő felismeri, de a driver telepítés nem sikerül.
(#) vzoole válasza vandorr hozzászólására (») Nov 24, 2013 /
 
Bootoláskor, F8 majd aláírás ellenőrzés kikapcsolása. Ezután fel lehet telepíteni, de minden használatkor így kell elindítani a gépet.
(#) fifadani hozzászólása Nov 27, 2013 /
 
Sziasztok!
Van egy 8x8-as mátrixom (led).
Úgy oldottam meg a meghajtását, hogy tranzisztorok kapcsolják a sorokat tápfeszre (persze R van előttük). Ők az A porton vannak, tehát A0-A7-ig.
Az oszlopokat invertereken keresztül kapcsolom testre. (Egyébként C0-C7)
S így a kódban 1-esekkel tudok dolgozni...
Kérdés:
Jó ez így?

Sikerült is egy smile-t kirajzolni. Ezt úgy csináltam, hogy az első sorban (A0) bekapcsoltam a középső 4 ledet (C2-C3-C4-C5).
Ez világít 3 ms-t.
Majd következő sor, aztán megint, megint....
És kész is.

Egyszerűbben meglehet ezt oldani?
Esetleg a sorok váltását megszakítással vezérelni?
Vagy valamilyen számlálással?
Tud valaki egy kis magyarázattal mutatni egy irányt, hogy mégis, hogy csinálják ezt a nagyok?
Egyenlőre animációra nincs szükségem, csak a megjelenítés...
Persze, jó lenne majd ezt a smile-t mozgatni is...

Köszönöm szépen!
(#) zombee válasza fifadani hozzászólására (») Nov 27, 2013 /
 
Szia!

Amíg úgy működik ahogy Neked jó addig jól csinálod. Ha rosszul csinálsz valamit vagy túlbonyolítod, azzal csak magaddal szúrsz ki. Meg néha velünk is.
A cuccnak a háttérben kell futnia(igen, sorváltások!), időzítő megszakítás használatával.
Értelmes animációról ne is álmodj amíg ez nincs meg!

Meghajtás: az ellenállásokat a "gyengébb" oldalra tenném, de igazából mindegy, a lényeg hogy egy egyetlen világító LED-et tartalmazó sor LED-je ugyanakkora fényerővel világítson, mint egy másik sor összes LED-jei ahol az összes világít. Invertert bátran tehetsz oszlop és sormeghajtónak is. Illetve az oszlopokat én az AVR-re szoktam kötni inverter és tranyó nélkül(spórolás!), természetesen az ellenállások is ide kerülnek mivel ez a "gyengébb" oldal. Az inverter egy jó tehermentesítő a portlábaknak.
A hozzászólás módosítva: Nov 27, 2013
(#) fifadani hozzászólása Nov 27, 2013 /
 
Hm ezt, hogy hozzam össze?
Hogy 1 sor 1 led-je olyan fényerővel mint egy másik sor összed led-je egyszerre?

Illetve, ha tranyó és inverter nélkül dolgozok, akkor az a 10-12 mA-es áramerősség nem terheli le a portot?

up1.: Aprópó. Ha a soroknál hagyom a tranyót, a ledek katódjait meg csak simán a portokra kötöm... Csak így ugye, a kódban 0-val kell majd dolgozni.. Ugyi?
A hozzászólás módosítva: Nov 27, 2013
(#) killbill válasza fifadani hozzászólására (») Nov 28, 2013 /
 
A matrix sorokbol es oszlopokbol all. Oda kell tenni az ellenallasokat, ahol egyszerre tobb kimenet is aktiv lehet. A te esetedben a sorokat valasztod ki (egyszerre mindig csak egy sort), es az oszlopokat hajtod meg az eppen kivalasztott soron belul. Ezert neked a oszlopokhoz kell tenni az ellenallasokat. Megpedig azert, mert ha a sorokhoz tenned, akkor az ellenallason lehet, hogy csak 1, de maskor 8 LED arama folyna keresztul.

A port terhelhetoseget az adatlap tartalmazza! Es figyelj oda, mert elofordul, hogy az adtlap megadja a port maximalis terheloaramat, de azt is megadja, hogy a mikrokontroller tap vagy fold laban osszesen mekkora aram folyhat. Pl. a port 20mA, de a fold lab 100mA. Ez azt jelenti, hogy hiaba tud egy-egy port lab 20mA-t, ha mar 8 port labat terhelsz 20mA-rel, akkor az 160mA lenne a tap labon, ami nem megengedett. Mindenkeppen nezd meg a hasznalt mikrokontroller adatlapjat. Sokszor meg egy mikrokontrolleren belul is valtozik, hogy melyik portot mennyire lehet terhelni.
(#) zsuscsinyo válasza fifadani hozzászólására (») Nov 28, 2013 /
 
Én mindenképpen azt javaslom, hogy meghajtásra ne használjátok a kontrollert, mert nem az a feladata, hanem a megfelelő jelek előállítása. Ha valami balul üt ki, jobb egy kb 40 Ft-os IC-t/tranyót cserélni, mint kompletten egy mikrovezérlőt.
(#) fifadani hozzászólása Nov 28, 2013 /
 
Sziasztok!
A kérdéses vezérlő egy mega128-as.
A sorok kapcsolását tranzisztorral, míg az oszlopokét inverterrel végzem.
Nem tudom, hogy lehet-e probléma az, hogy a bázisok elé nem tettem ellenállást...
Illetve ha a C porton lévő oszlopokat egyszerre akarom "kigyújtani", megcsinálja de halványan.
A táp 3A-es, szóval ez nem lehet probléma...
Esetleg bázisok elé korlátozó ellenállás segíthet?

Köszi!
(#) killbill válasza fifadani hozzászólására (») Nov 28, 2013 /
 
Idézet:
„A kérdéses vezérlő egy mega128-as.”
Ok, de neked kell megnezni az adatlapban a hataradatokat, nem nekunk. Segitunk (en legalabbis), de nem ugy, hogy megoldjuk a problemat, hanem megmutatjuk a helyes utat a megoldashoz.
Idézet:
„Nem tudom, hogy lehet-e probléma az, hogy a bázisok elé nem tettem ellenállást...”

A bazisok ele vagy kell ellenallas vagy nem. Az legfokepp attol fugg, hogy hol vannak az emitterek. A tranzisztor bazis-emitter atmenete egy dioda. Arra nem kothetsz 5V-ot, mert tonkremegy. Korlatozni kell a bazisba folyo aramot. Ha emitterkovetot epitesz, akkor nem feltetlenul kell a bazisba ellenallas. De ez az egesz itt nem AVR dolog, hanem elektro alapok. Vesd fel a problemat a kezdo kerdesek topikban.
Idézet:
„Illetve ha a C porton lévő oszlopokat egyszerre akarom "kigyújtani", megcsinálja de halványan.”

Elmondtam a lenyeget az elozo hsz-ben, de teszek meg egy kiserletet: hol vannak a LED elotet ellenallasok? Ha csinalsz egy rajzot (akar papirra es lefenykepezed), akkor hamarabb latjuk, hogy mi a helyzet.
(#) fifadani hozzászólása Nov 28, 2013 /
 
Sziasztok!
Itt a megvalósított kapcsolás.
Bővebben: Link
A VS1 5V.
(#) killbill válasza fifadani hozzászólására (») Nov 28, 2013 /
 
Ez elmeletben jo kellene legyen. Gyakorlatban viszont a BC237 az 100mA-es tranzisztor, es ha jol szamolok, akkor a LED-enkenti ~20mA az 8 LED eseten mar 160mA. Az sok a 100mA-s tranzisztornak. Oda valami jobb kellene, mondjuk BC338 vagy P csatornas MOSFET. Es milyen inverter van benne? Birja a 20mA-t?
(#) fifadani hozzászólása Nov 28, 2013 /
 
Az inverter SN74LS04.
(#) 06smici válasza 06smici hozzászólására (») Nov 28, 2013 /
 
Sziasztok. Mit múltkor írtam problémákat azokat nagy nehezen de sikerült megtalálni. De közben felmerült még pár kérdés, hátha tudtok segíteni.
Az egyik probléma az volt, hogy két reggisztert összehasonlítottam és Z bitet vizsgáltam. De ez "cp" utasítással nem működött. Pedig súgó szerint Z: Set if the result is $00; cleared otherwise.
  1. start:
  2.       cp min,min_save
  3.       breq start
És a legszebb a dologban, hogy amint CPSE-vel hasonlítottam össze egyből ment:
  1. start:
  2. cpse min,min_save
  3. rjmp tovabb
  4. rjmp start
  5. tovabb: ...
Erre tudtok valamit miért csinálta ezt? Elvileg ugyan azt kéne csinálnia (csak egy hetet szívtam vele mire rájöttem )

Illetve van még egy olyan gondom, hogy bekapcsoláskor néha teljesen random értékeket ír ki(7 szegmenses) és ilyenkor ha jön a következő számjegy, egyes szegmensek akkor se világítanak. Pedig main-ben törlök minden reggisztert, csak azokat nem miknek később úgyis értéket adok át. Ha hosszabb ideig van kikapcsolva akkor csinálja csak ezt, egy perc szünet után, illetve rátöltés után minden gond nélkül indul.
Az első most így cpse-vel működik, de a másodikra nincs ötletem. Nem tudjátok mi okozhatja?
(#) killbill válasza fifadani hozzászólására (») Nov 28, 2013 /
 
Hááááát.. Azt sem eppen 20mA-re terveztek. Valami durvabb kellene, nem sima LS kapu. Esetleg 74LS245, az buszmeghajto, 24mA L szinten. De ha egy TPIC6C595-ot tennel oda, akkor az biztosan birja aramban, es meg kevesbb labat is foglal a mikrokontrolleren. Igaz, hogy kicsit bonyolultabb a program. Mutatok egy rajzot egy matrixrol. Ebben 6x16 LED volt.

display.png
    
Következő: »»   575 / 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