mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Rowley Crossworks AT91sam7x-ek PIO


Autor: Tom Keller (thokuc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich arbeite mit (zum ersten mal) einem Atmel  AT91SAM7x-EK Board in 
verbindung mit dem Rowley Crossworks 1.7.
Bisher läuft darauf FreeRTOS 4.5. Ich habe einen extra Task erstellt, 
der auch läuft. Mit diesem Task möchte ich mit einem Infineon Sensor 
kommunizieren (SENT Protokoll)

Jetzt hab ich gewisse Probleme den PIO Controller richtig anzusprechen.

Mein Problem ist, dass ich das System, wie man mit den einzelnen 
Funktionen der I/O Ports umgeht etc. nicht verstehe. Gibt es dazu eine 
gut verständliche Dokumentation? Ideal wäre natürlich deutsch, aber ich 
möchte nicht anmasend sein ;)
Ich mein aber nicht die 670 Seiten Boardbeschreibung mit den einzelnen 
Funktionen, die versteh ich schon. Mein Problem liegt wiegesagt beim 
Programmieren

Erste versuche Register zu aktivieren etc. schauen so aus.
void vCheckit (void *pvParameters){



  ( void ) pvParameters; //for unused params
  AT91C_BASE_PIOA->PIO_PDR = SENSIN; //disables Register PIOA5
  AT91C_BASE_PIOA->PIO_PER = SENSIN; //enables Register PIOA5
  AT91C_BASE_PIOA->PIO_IFSR = SENSIN; //Set Register to Output


  if (AT91C_BASE_PIOA->PIO_IFSR == '1'){
  const int state = 1
    }


  for(;;){
}
}
Sehr primitiv, aber irgendwie muss man ja den Einstieg finden ;)

Für Ratschläge wäre ich sehr Dankbar, evtl ergänzend auch 
Literaturempfehlung ?

Autor: Jörn Kaipf (joern)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine PIO Kontroller Einstellungen sind etwas seltsam.

1) Takt für PIO Kontroller freischalten

  AT91C_BASE_PMC->PMC_PCER = 0x00000004  # Bit 2 for PIOA

2) Entsprechende Pins einschalten

  AT91C_BASE_PIOA->PIO_PER = SENSIN; //enables Register PIOA5

3) Pins als Ausgang konfigurieren

  AT91C_BASE_PIOA->PIO_OER = SENSIN; // PIOA5 as output

4) Pins toggeln

  AT91C_BASE_PIOA->PIO_CODR = SENSIN; // clear PIOA5
  AT91C_BASE_PIOA->PIO_SODR = SENSIN; // set PIOA5

Ich hoffe das hilft für den Anfang.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schonmal :)
Der takt wurde glaube ich, wenn ich das richtig sehe schon im main 
freigeschaltet mit:

 AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA;

Daher brauch ich das hier nicht mehr oder?

Sorry für die dummen Fragen ;) Aber ist echt nicht grad leicht da rein 
zu kommen.
Gäbe es evtl noch Tips für online Dokumentationen womit man da mal 
durchsteigen kann? Sitz jetzt schon recht lang dran und komm immer nur 
in mini Schritten vorran.

Autor: Jörn Kaipf (joern)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der takt wurde glaube ich, wenn ich das richtig sehe schon im main
> freigeschaltet mit:
>
>  AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA;
>
> Daher brauch ich das hier nicht mehr oder?

Ja, dann kannst du dir die Zeile sparen

> Sorry für die dummen Fragen ;) Aber ist echt nicht grad leicht da rein
> zu kommen.

Ich finde beim PIO Controller das Blockdiagramm im Datenblatt sehr 
nützlich.

> Gäbe es evtl noch Tips für online Dokumentationen womit man da mal
> durchsteigen kann?

Learning by doing ;) Schau mal hier vorbei:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/

Autor: gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>gäbe es evtl noch Tips für online Dokumentationen womit man da mal
>durchsteigen kann? Sitz jetzt schon recht lang dran und komm immer nur
>in mini Schritten vorran.
unter u.a. link findest du zu fast allen peripherals examples:
http://www.atmel.com/dyn/general/tech_doc.asp?doc_...

gruss
gerhard

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.