 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
oversc0re Član

Pridružen-a: Tor 13 Sep 2005 15:20 Prispevkov: 460 Aktiv.: 1.94 Kraj: Radomlje
|
Objavljeno: Pon Feb 06, 2006 2:05 pm Naslov sporočila: AVR atmega8 Pull-up |
|
|
Zivjo!
Ponavadi sem vedno dajal eksterni pullup upor na vhodne porte, tokrat pa sem se zaradi potrebnih majhnih dimenzij vezja odločil da uporabim interne pullupe. Port D nastavljen kot vhod, pullup vklopljen. Voltmeter na pinih kaze 4.99V. Do tod vse lepo in prav, tu pa se začnejo problemi: Največji meni nerazložljiv problem je, da ko s tipko PIND povežem na maso, se čez nekaj trenutkov pullup upor ugasne Le če tipko spustim dovolj hitro, se napetost na pinu povrne na 5V, drugače pa ostane na 0! Po resetu se spet vrne na 5V.
Težko bi verjel, da je čip skurjen, ker je port že od samega začetka sprogramiran kot vhod.
Kakšna ideja? |
|
Nazaj na vrh |
|
 |
jur Član


Pridružen-a: Pet 02 Dec 2005 14:45 Prispevkov: 5142 Aktiv.: 21.71 Kraj: [color=zelena]Ljubljana[/color]
|
Objavljeno: Pon Feb 06, 2006 2:30 pm Naslov sporočila: |
|
|
Tole zgleda tako, kot da interni pullup upori sploh ne bi bili vklopljeni. Ali pa jih program odklopi. Ali pa je napačen port.
Jur |
|
Nazaj na vrh |
|
 |
oversc0re Član

Pridružen-a: Tor 13 Sep 2005 15:20 Prispevkov: 460 Aktiv.: 1.94 Kraj: Radomlje
|
Objavljeno: Pon Feb 06, 2006 4:07 pm Naslov sporočila: |
|
|
Hmm prav imaš. V neki čudni situaciji se mi nekako ugasne pullup. Zdelo se mi je sicer nemogoče ker v gl. programu nikjer ne spreminjam porta, vendar pa sem ravnokar ugotovil, da mi moja knjižnica za LCD šari po portu D in je najbrž kriva za probleme. Že debugiram  |
|
Nazaj na vrh |
|
 |
smatjaz Član


Pridružen-a: Pon 10 Nov 2003 16:33 Prispevkov: 846 Aktiv.: 3.57
|
Objavljeno: Tor Feb 07, 2006 3:21 pm Naslov sporočila: |
|
|
Predlagam ti, da poleg tega, da si nastavil PinD kot vhod določiš še vrednost v DDRD registru. Ta vhod postavi na 1. Jaz to prakticiram, kadar na Pin, ki je deklariran kot vhod, priklopim kolektor tranzistorja v optocouplerju. Taka priključitev mi omogoča, da mi ni potrebno dodati upora med kolektorjem in +Vcc.
Lp M. _________________ Električni aparati delujejo na dim ... ko dim iz njih uide ... ne delujejo več! |
|
Nazaj na vrh |
|
 |
oversc0re Član

Pridružen-a: Tor 13 Sep 2005 15:20 Prispevkov: 460 Aktiv.: 1.94 Kraj: Radomlje
|
Objavljeno: Tor Feb 07, 2006 3:30 pm Naslov sporočila: |
|
|
smatjaz je napisal/a: |
Predlagam ti, da poleg tega, da si nastavil PinD kot vhod določiš še vrednost v DDRD registru. Ta vhod postavi na 1. Jaz to prakticiram, kadar na Pin, ki je deklariran kot vhod, priklopim kolektor tranzistorja v optocouplerju. Taka priključitev mi omogoča, da mi ni potrebno dodati upora med kolektorjem in +Vcc.
|
Tega ne razumem najbolje... PIND je read only. DDRD je pač smerni register. Problem sem rešil. Težava je bila v vrstici PORTD = (x & 0xF0) | (PIND & 0x0F); ki je stanje porta prepisala v PORT register, ki pomeni pullup upore. Sem zamenjal s PORTD = (x & 0xF0) | (PORTD & 0x0F); in deluje kot se spodobi. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|