Sida 1 av 1

Varför just mig?

Postat: 3 mars 2004, 21:55:18
av Detraw
Hmmm nu har jag fått ett till konstigt problem... varför lyckas jag få de hela tiden...

Jag använder mig av en ATMega16 och sätter PORTC till 01010101 genom denna kod:

Kod: Markera allt

	
.def temp = R16

.org 0x0000
rjmp Reset

Reset:
	ldi      temp,LOW(RAMEND)          ; initiera stacken
	out     SPL,temp
	ldi      temp,HIGH(RAMEND)
	out     SPH,temp

	ldi      temp, 0xFF
	out     DDRC, temp
	
	rjmp   START

START:
	ldi     temp, 0b01010101
	out    PORTC, temp
	rjmp  START
detta blir resultatet (mätt med voltmeter):
PORTC, 0 = 1
PORTC, 1 = 0
PORTC, 2 = 1
PORTC, 3 = 1
PORTC, 4 = 0
PORTC, 5 = 1
PORTC, 6 = 1
PORTC, 7 = 0

hmm det ända jag kan komma på är att som standard används dessa portar till nått annat, vad iaf och hur ändrar jag det, om det nu är det som är felet...

Tack på förhand

Postat: 3 mars 2004, 22:05:19
av gvs
kollat så att vissa av dom inte endast ka nvara inportar? att dom inte är analoga? osv.

Postat: 3 mars 2004, 22:28:45
av Detraw
i databladet står PORTC beskrivet som alla andra portar + att det står att man ska kunna välja att använda de på annat sätt, så jag tycker det låter som om de ska funka som en vanlig 8-bits port... nån som vet nått annat?[/b]

Postat: 3 mars 2004, 22:59:56
av matseng
Just dom pinnar som buggar för dig används av JTAG-interfacet. Se till att du inte har JTAGEN-fusen aktiverad.

Postat: 3 mars 2004, 23:44:13
av Detraw
jo jag läste i databladet om det. Har jag fattat det rätt om det är OCDR registret som ska rensas (sättat till 0x0)?

EDIT: nu funkar den som den ska, det ja JTAG fuse biten som va fel av nån anledning, tackar