Du wirst wohl auch das Programm rausrücken müssen.
Und auch den Schaltplan, wenn's geht.
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
Du wirst wohl auch das Programm rausrücken müssen.
Und auch den Schaltplan, wenn's geht.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
JTAG deaktiviert? ansonsten sind C2...C5 blockiert...
So, ich hab mich nochmal hingesetzt. Hier kommt der Quellcode:
An PortC sitzen 8 Trigger des Typs 74HCT14, an PortD 8 LEDs.Code:.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
C2 bis C6 liefern noch immer Low, über C7 wird immer High eingelesen, die restlichen Pins am PortC laufen
und die Eingänge der Trigger hängen auch ganz sicher auf fixem Potential (also nich in der Luft ...)?
Hab mit entsprechenden Widerständen an den Eingängen der trigger dafür gesorgt
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.
Aus dem Datenblatt zu ATMega 16, Atmel Corporation, 10/04When 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.
Danke für eure Zeit,
Pollux
Hallo,
Du könntest also auch das Fusebit umstellen, dann muss es nicht vom Programm aus umgestellt werden.
Lesezeichen