Hallo, ich habe mittels des SysTick() einen Interrupt ausgelöst und möchte nun in der Datei "stm32f10x_it.c" eine Varibale hochzählen (und ein paar Berechnungen anstellen). Dazu habe ich in der main eine Variable "volatile uint32_t zaeher = 0" angelegt und im SysTickHandler diese einfach mal zum testen aufgerufen "zaehler = 1". Schon beim Compilen sagt mir die IDE (atollic), dass ich die Variable erstmal im Interrupt deklarieren solle, beim betätigen von F3 in der Main verweist er jedoch sofort auf den Interrupthandler. Welchen Peinlichen Fehler habe ich heute wieder gemacht? -.-
Marcus P. schrieb: > in der main [...] > im Interrupt deklarieren Die muß global definiert werden. Nicht in main und nicht im interrupt. Duke
Ja, habe ich auch, ich meinte in der Main Datei, über der Mainfunktion.
Also folgendermaßen
Maindatei:
#define "stm32f10x.h"
**Konstanten Definitionen Funktionen ect. hier gemacht plus folgende
Zeile
volatile uint32_t zaeher = 0
int main(void)
{
**Aufruf der Funktionen (RCC, Timer, Systick ect.)
while(1)
{}
}
** Funktionen (RCC, Timer, Systick ect)
--------------------------------------------------------------
Im stm32f10x_it.c :
void SysTick_Handler(void)
{
zahler = 1;
}
extern zur Bekanntgabe vergessen! Im stm32f10x_it.c :
1 | extern volatile uint32_t zaehler; |
2 | |
3 | void SysTick_Handler(void) |
4 | {
|
5 | zaehler = 1; |
6 | }
|
Deim Quellcode hat außerdem Tipp- und Syntaxfehler!
Marcus P. schrieb: > Schon beim Compilen sagt mir die IDE (atollic), dass ich > die Variable erstmal im Interrupt deklarieren solle, beim betätigen von Genau. Dann tu das doch einfach: extern typ variable; > F3 in der Main verweist er jedoch sofort auf den Interrupthandler. Du mußt jetzt ganz stark sein: Eclipse hat verdammt wenig Ahnung von C. Noch viel weniger als von Java. Insbesondere hat Eclipse keinen echten C-Parser. Wenn du F3 drückst, sucht der halt, wo im Projekt noch so ein Ding auftaucht und hat dann noch ein paar Regeln, was davon er auch anzeigt. Der C-Compiler hingegen nimmt es ganz genau.
Besten Dank, das hatte ich wirklich nicht beachtet. Die Tippfehler rühren daher, dass ich die IDE auf einem anderen PC laufen habe, somit alles hier neu schreiben musste und etwas gefrustet war, als beim ersten Versuch hier zu posten der Text auf einmal weg war. (ok das define anstelle der include und der vergessene Semi sind wirklich peinlich) Gibt es eigentlich irgendwo komplexeren Beispielcode (allgemein)? Die ST_examples sind eher lausig geschrieben habe ich das Gefühl und kratzen nur an der Oberfläche.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.