mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STR912FAW44 GPIO


Autor: Hans Dampf (herschdorfer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bi ganz neu in der ARM Programmierung und wollte bei dem STR912 auf 
einem selbstgebauten Board einfach mal eine LED leuchten lassen..

Jedoch blicke ich bei dem Wirrwar aus KEIL und ST Programmbeispielen 
nicht durch.

ich arbeite mit uVision und will nur den port 7.0 einfach mal auf High 
schalten.

Hier mein bisheriger CODE...

leider andert sich an PIN5 nix...
  
#include <91x_lib.h> 
#include <91x_gpio.h>


void LedShow_Init(void);
void LedShow(FunctionalState NewState);

bool LedShowStatus = FALSE;
GPIO_InitTypeDef GPIO_InitStructure;

int main(void)
{
  while (1){
    LedShow_Init();
    LedShow(ENABLE);
  }

}

 void LedShow_Init(void)
{

  GPIO_StructInit(&GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  GPIO_InitStructure.GPIO_Direction = GPIO_PinOutput;
  GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull;
  GPIO_Init(GPIO7, &GPIO_InitStructure);
}


void LedShow(FunctionalState NewState)
{
  if(NewState == ENABLE)
  {
    LedShowStatus = TRUE;
  }
  else
  {
    LedShowStatus = FALSE;
  }
}

Autor: Andre Pilz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab hier ein ähnliches Problem, ein Olimex-Board mit diesem Chip, 
Anfänger in der ARM-Entwicklung und kein OOTB-Beispiel, woran man mal 
tatsächlich sehen kann, wie das alles funktioniert. Aber scheinbar 
fehlen mir einfach noch ein paar Grundlagen.

Als nächstes versuch ich es mal mit "Building Bare-Metal ARM Systems 
with GNU" (Artikelserie, siehe Google, ist hier auch verlinkt), wenn 
aber jemand zeigen könnte, in welche Richtung ich mich bewegen sollte, 
wäre das klasse.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es könnte sich lohnen, den Takt für den GPIO-Port einzuschalten.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Code oben versucht zwar, den Port zu konfigurieren, aber wo wird der 
Pin geschaltet? Gesetzt wird nur die Statusvariable. Zudem ergibt die 
Portinitialisierung in der Schleife keinen Sinn, sowas gehört davor.

Mit einem ARM9 anzufangen kann ein ziemlich frustrierender Weg sein. Bei 
einfacher gestalteten Tierchen (z.B. 8-Bit-Klasse oder MSP430) kommt das 
Erfolgserlebnis deutlich früher.

Autor: Hans Dampf (herschdorfer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kenn mich mit anderen Prozessoren aus, zb. atmega 8 und ein paar 
DSP's, aber bei dem ARM verzweifle ich wirklich...

was meint ihr mit Takt einschalten...

ja, das stimmt die initalisierung hab ich auch schon davor gesetzt.

wie schalte ich den Pin ein? welcher befehl ist das?

MfG
Herschdorfer

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Leber schrieb:

> was meint ihr mit Takt einschalten...

Es gibt in der Referenz ein ganzes Kapitel über Strom, Takt und Reset. 
Da könntest du mal einen Blick reinwerfen.

Und nachdem die ST-Libs ungefähr nach den Kapiteln der jeweiligen 
Referenz sortiert sind, dürfte es in der Lib auch was dazu geben. 
Folglich findet man die Taktkontrolle für eine Peripherieeinheit 
passenderweise nicht bei der Peripherieeinheit, sondern ganz woanders 
zentral für alle.

Ist bei neueren AVRs auch nicht viel anders, nur hat Atmel die Takte ab 
Reset freigeschaltet, so dass es etliche Anwender auch nach Jahren noch 
nicht gemerkt haben dürften. Bei ST merkt man es gleich.

Autor: Gast (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
anbei ein Beispiel.

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.