Ausgänge setzen in C/ Anfänger

#1029393
Lesenswert?

Hallo, ich bin neu was die programmierung der AVR´s in C angeht. Ich 
habe mir auch schon das Tutorial angekuckt. Ich bin nicht grad weit 
gekommen bevor ich passen musste. Ich verstehe nicht wie ich die ports 
beschalte. Ich möchte den port A0 als ausgang definieren und auf high 
setzen, A1 möchte ich dagegen auf low setzen. Da komme ich nicht weiter, 
ich werde aus den Tutorials nicht schlau, hoffe jemand kann mir helfen.

joni8a
Gast #1029430
Lesenswert?

Hallo,
um einen enstprechenden Portpin als Ausgang zu setzen musst du einfach 
das entsprechende Bit im DDRX Register setzen. (Das X steht für den 
jeweilgen PORT(A,B,C, D) ). Wenn das Bit des Portpins null ist ist es 
ein Eingang. In deinem Bsp. wäre des dann einfach:
DDRA |= (1<<PA0);
Gruß
Peter
Gast #1029457
Lesenswert?

>Die LED bleibt tot
Arme LED.

Mit Deinem Programm ist, wie Matthias schon sagt, der Port auf Ausgang 
geschaltet. Nach dem Reset ist das Datenregister auf 0 gesetzt. D.h. Du 
müsstest eine 0 (= 0V) messen können.

Was benutzt Du für eine Hardware? Die LED könnte theoretische jetzt 
leuchten.

Der Code
1
#include <avr/io.h>
2

3
int main(void)
4
{
5
  DDRA |= (1<<PA0);
6
  PORTA |= (1<<PA0);
7

8
  while(1)
9
    {
10

11
    }
12
  return 0;   /* never reached */
13
}

Sollte jetzt aber, die LED zum leuchten bringen. Wenn nicht, ist was 
anderes los.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren