PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Input-Pins am AVR



Pollux
01.11.2005, 18:59
Hallo zusammen,
Ich hab grad einen ATMEGA16 darauf programmiert über das Regsiter PinC ein Byte einzulesen. Aber ich kann von außen an die Pins des Ports anlegen was ich will. Der AVR ließt immer das Byte 0b11000011 ein. Ich steh hier grad wie der Ochs vor'm Berg und weiß nicht weiter. Bitte helft mir, was da fasch sein könnte.
Gruß,
Pollux

PicNick
01.11.2005, 19:06
Du wirst wohl auch das Programm rausrücken müssen.

Und auch den Schaltplan, wenn's geht.

uwegw
01.11.2005, 19:12
JTAG deaktiviert? ansonsten sind C2...C5 blockiert...

Pollux
01.11.2005, 21:11
So, ich hab mich nochmal hingesetzt. Hier kommt der Quellcode:

.include "m16def.inc"
.def temp=r16

rjmp Reset

Reset:
ldi temp, 0x80
out MCUCSR, temp ;JTAG aus
clr temp
out DDRC, temp ;PortC Input

ldi temp, 0xFF
out DDRD, temp ;PortD Output

Loop:
in temp, PinC
out PortD, temp
rjmp Loop
An PortC sitzen 8 Trigger des Typs 74HCT14, an PortD 8 LEDs.
C2 bis C6 liefern noch immer Low, über C7 wird immer High eingelesen, die restlichen Pins am PortC laufen

skillii
01.11.2005, 22:12
und die Eingänge der Trigger hängen auch ganz sicher auf fixem Potential (also nich in der Luft ...)?

Pollux
02.11.2005, 09:58
Hab mit entsprechenden Widerständen an den Eingängen der trigger dafür gesorgt

Pollux
02.11.2005, 10:17
Ha, ich hab grad den Fehler gefunden!
Danke uwegw für den Tip mit dem JTAG-Interface.
Ich dacht, ich hätt's ausgeschaltet, aber mann muss ja das JTD-Bit 2 mal schreiben.

When this bit is zero, the JTAG interface is enabled if the JTAGEN Fuse is programmed.
If this bit is one, the JTAG interface is disabled. In order to avoid unintentional disabling
or enabling of the JTAG interface, a timed sequence must be followed when changing
this bit: The application software must write this bit to the desired value twice within four
cycles to change its value. Aus dem Datenblatt zu ATMega 16, Atmel Corporation, 10/04

Danke für eure Zeit,
Pollux

linux_80
02.11.2005, 13:27
Hallo,
Du könntest also auch das Fusebit umstellen, dann muss es nicht vom Programm aus umgestellt werden.