Stránka 1 z 1

atmega8 zapojeni vstup.pinu - pomoc

Napsal: 31 říj 2009, 18:00
od vrabec1330
cau vsichni, potreboval bych poradit se zapojenim vytupnich u atmega8, uz nad tim 2 dny badam a stale se mi nepodarilo zprovoznit jakekoli zapojeni s vstup.pinama, porad to vypada jako by na pinu byla Log 0 i kdyz by tam mela byt Log 1,prosim pokud by byl schopen poslat schema i program(najlepe bascom , ale nevadi pokud asm nebo c) nebo aspon poradit jak odstranit chybu byl bych mu moc vdecny diky

Napsal: 31 říj 2009, 19:45
od LordFus
no, pokud je tam nula, tak je to trochu divné, nicméně pokud tam není nic (vysoká impedance), tak máš špatně nastavené DDRx. Pokud chceš piny AVR nastavit jako výstup, musíš do registru DDRx na pozici odpovídající pinu dát log. jedničku, čímž ten pin nastavíš jako výstup. Pak v registru PORTx nastavuješ, jestli má být výstup v jedničce nebo v nule. V datasheetu je na to hezká tabulka.

Napsal: 31 říj 2009, 19:51
od vrabec1330
no prave vystupy fungujou, ale problem je se vstupy..:)

Napsal: 31 říj 2009, 19:54
od LordFus
aha, sem to přečet moc rychle sry. A víš že to musíš číst z registrů PINx? V PORTx se při vstupech nastavuje, jestli jsou z vysokou impedancí, nebo s pull-up rezistorem.

Napsal: 31 říj 2009, 21:19
od vrabec1330
no ja delam v basicu tam se to nastavuje pres portx.x podle me to neni problem programu ale spis v hardwaru..nemohl bys mi spis poslat schema zapojeni toho tlacitka? a ty pull up rezistory se musej zapnout ne?

Napsal: 31 říj 2009, 21:52
od LordFus
Asi takhle. Čudlík stačí připojit mezi pin a zem. Dejme tomu, že máš čudlík na nultém pinu portu B.

-v DDRB nic nastavovat nemusíš, tam jsou po resetu jedničky, takže jsou všecky piny nastaveny jako vstupy
-abys zapnul pull-up, musíš dát nultý bit registru PORTB do jedničky

stav pinu čteš z nultého bitu registru PINB

v assembleru takto:
ldi R16,0b00000001
out PORTB,R16

Napsal: 01 lis 2009, 08:42
od popopepe
vrabec1330 píše:no ja delam v basicu tam se to nastavuje pres portx.x podle me to neni problem programu ale spis v hardwaru..nemohl bys mi spis poslat schema zapojeni toho tlacitka? a ty pull up rezistory se musej zapnout ne?

V jakém Basicu? Bascom?


Tam je to poměrně jednoduché:
Pozor na rozdíl mezi Port a Pin, port nastavuje a zařizuje výstup, Pin je pro čtení stavu na vstupu.
Deklarace:
PORTB=Input - nastavíš registr na vstup
Port B=255 - tady si nastavíš, kde chceš zapnout pullup odpory, v tomto případě na všech pinech portu B

a v programu čteš pomocí: PINB.x

např:
A=PINB.1

a v proměnné A budeš mít to co je nastaveno na pinu B.1.

Popo