Go Down

Topic: Anfänger Frage Portmanipulation/IO (Read 596 times) previous topic - next topic

sandmen

Mar 07, 2011, 07:26 pm Last Edit: Mar 07, 2011, 07:35 pm by sandmen Reason: 1
Hallo,
nach langer Zeit möchte ich wieder etwas mehr mit Mikroprozessoren arbeiten.
Ich habe eine Frage zum Portmapping beim Seeeduino Mega 1280.
In einen bestehenden Code soll ein Digitaler Output hinzugefügt werden.
So ist es bereits gelöst.
Code: [Select]
 
 #define LEDPIN 13
 #define LEDPIN_PINMODE             pinMode (13, OUTPUT);
 #define LEDPIN_SWITCH              PINB |= (1<<7);
 #define LEDPIN_OFF                 PORTB &= ~(1<<7);
 #define LEDPIN_ON                  PORTB |= (1<<7);

ich möchte den neuen Ausgang auf den PIN 22 legen.
Ich hoffe dieser ist ein I/O.
Wo gibt es eigentlich Doku zu dem Seeeduino?
Wo finde ich die Referenz von PIN-Beschriftung zu Controller?
Laut http://www.arduino.cc/en/Reference/PortManipulation sind die
PortD = digital 0-7
PortB = digital 8-13
Ich vermute Pin22 ist dann Digital I/O null ?
Ist dann  
Code: [Select]
 
  #define LEDPIN 0
  #define LEDPIN_PINMODE             pinMode (0, OUTPUT);
  #define LEDPIN_SWITCH              PIND |= (1<<7);
  #define LEDPIN_OFF                 PORTD &= ~(1<<7);
  #define LEDPIN_ON                  PORTD |= (1<<7);

richtig oder muss ich die 13 mit 22 ersetzen?
richtig ?


uwefed

Die Daten gelten für den Atmega328 bzw ATmega168. Der hat 3 Ports.
Der Seeduino Mega hat den ATmega1280 und hat viel mehr Ports.
Wieso willst Du direkt auf die Ports zugreifen und nicht über pinMode?
Grüße Uwe

sandmen

Hallo,

1. Um den bestehenden Codestyle zu behalten.
2. Um mal wieder etwas detailierter in die Materie reinzukommen.

Klar mit digitalWrite/digitalRead wäre ich bereits fertig :-)

Vielleicht kannst Du mir noch ein paar Hinweise zur Doku geben?

Vielen Dank im vorraus.

uwefed

http://www.atmel.com/dyn/resources/prod_documents/doc2549.PDF
Seiten 4 bis 10

Die Ansteuerung müßte analog zu den ports A bis C des ATmega328 sein.

Grüße Uwe

volvodani

Wenn du einen Seeeduino hast und die "überetztung" der Ports brauch schau mal in die Datei
"*\arduino-0022\hardware\arduino\cores\arduino\pins_arduino.c" da steht wahrscheinlich das was du willst.
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Go Up