Funktionen aus libATSAM7S256.h

Gast #694073
Lesenswert?
• ▲
▼
Moin.
Habe da so eine Verständnisfrage.
Manche Funktionen aus libATSAM7S256.h erscheinen mir nicht ganz 
richtig(oder mache ich einen Denkfehler?). So z.B.
1
__inline void AT91F_PIO_SetOutput(
2
  AT91PS_PIO pPio,   // \arg  pointer to a PIO controller
3
  unsigned int flag) // \arg  output to be set
4
{
5
  pPio->PIO_SODR = flag;
6
}
Mit AT91F_PIO_SetOutput(AT91C_PIO_PA28) wir PA28 HIGH gesetzt. 
AT91C_PIO_PA28 ist ja (1<<28), d.h. (1<<28)=0x10000000. Was wiederum 
heist,  dass alle zuvor gesetzten Pins LOW werden(?). Muss es nicht so
1
 pPio->PIO_SODR | = flag;
 sein?

Oder in
1
__inline void AT91F_PIO_CfgPeriph(
2
  AT91PS_PIO pPio,             // \arg pointer to a PIO controller
3
  unsigned int periphAEnable,  // \arg PERIPH A to enable
4
  unsigned int periphBEnable)  // \arg PERIPH B to enable
5

6
{
7
  pPio->PIO_ASR = periphAEnable;
8
  pPio->PIO_BSR = periphBEnable;
9
  pPio->PIO_PDR = (periphAEnable | periphBEnable); // Set in Periph mode
10
}
wird hier nicht auch die zuvor eingestellte Peräpherie deaktiviert?
#694088
Lesenswert?
• ▲
▼
Hi,

nein, es muss kein |= sein. Beim dem ARM gibt es jeweils extra ein 
Register zum Setzen und ein Register zum Zurücksetzen (SODR = Set output 
data register oder so, das Gegenstück wäre CODR = clear output data 
register). Schreibst Du ein Bit in SODR, geht der Ausgang auf high, 
schreibst Du das entsprechende Bit in CODR, geht der Ausgang auf Low. 
Nullen schreiben ändert nix...
Ist bei vielen Peripherie-Registern so...

MfG
 Deejay

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.