- LiTime Speicher und Akkus         
Ergebnis 1 bis 8 von 8

Thema: Input-Pins am AVR

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    25.04.2005
    Beiträge
    35

    Input-Pins am AVR

    Anzeige

    Praxistest und DIY Projekte
    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

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    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.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    JTAG deaktiviert? ansonsten sind C2...C5 blockiert...

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    25.04.2005
    Beiträge
    35
    So, ich hab mich nochmal hingesetzt. Hier kommt der Quellcode:
    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
    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

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    35
    Beiträge
    194
    und die Eingänge der Trigger hängen auch ganz sicher auf fixem Potential (also nich in der Luft ...)?

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    25.04.2005
    Beiträge
    35
    Hab mit entsprechenden Widerständen an den Eingängen der trigger dafür gesorgt

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    25.04.2005
    Beiträge
    35
    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

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    Du könntest also auch das Fusebit umstellen, dann muss es nicht vom Programm aus umgestellt werden.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus