Hallöchen ich bin neu hier bei euch im Forum und noch neuer im Bereich der µC programmierung. Arbeite für die Uni mit einem STM32F4Discovery, was leider nicht so ganz einsteigerfreundlich ist ;-) Ich bin auf der Suche nach einer Delay Funktion, mit der ich Delays im ms Bereich verwirklichen kann. Ich hab hier im Forum und auch bei google schon viel dazu gelesen und probiert...unter anderem mit dem Systick und einer einfachen for-Schleife. Aber irgendwie krieg ich das alles nicht hin :-( Wäre nett, wenn mir jemand möglichst genau erklären kann, wie so etwas funktioniert. Danke schonmal für eure Hilfe
Google doch einfach stm32 discovery delay da findet sich doch schon im ersten Ergebnis was. Wenn du aber wirklich daran denkst Delays zu verwenden, dann würde ich dir einen einfacheren 8bit µC ans Herz legen. PIC / AVR. Dann ist's einfach noch nicht so weit, dass du mit der Komplexität zu Recht kommst.
Hey, danke für deine Antwort. Google hat mir wie gesagt nichts geholfen...und bei dem Beispiel, dass du mit gezeigt hast ist die Zeit nicht genau Definiert, die gewartet wird. Ich würde schon, seit ich mit dem Projekt angefangen habe lieber auf einen AVR arbeiten, würde für mich alles viel einfacher machen...Darf ich aber leider nicht, weil mit dieses Board von der Uni vorgeschrieben wurde...
Verwendest Du als Grundlage ein Demo-Programm? Wenn nicht, solltest Du das am Anfang machen! Darin findet sich zumeist eine Funktion void SysTick_Handler(void), die typischerweise alle 10ms per Interrupt aufgerufen wird. Initialisiert wird an anderer Stelle mit: RCC_ClocksTypeDef RCC_Clocks; /* SysTick end of count event each 10ms */ RCC_GetClocksFreq(&RCC_Clocks); SysTick_Config(RCC_Clocks.HCLK_Frequency / 100); In dem oben erwähnten SysTick_Handler() kannst Du ein Flag setzen, was in einer Warte-Funktion ausgewertet wird, oder auch eine uint32_t-Variable auf '0' runterzählen und, und, und ...
Danke Jetzt hab ich das Beispiel das ich hatte endlich verstanden :D Das hat mich nen bisschen verwirrt, weil zu viel drum rum stand. Habe mal meinen einfachen Blinky mit nem Systick angefügt.
Malte B. schrieb: > Ich bin auf der Suche nach einer Delay Funktion, mit der ich Delays im > ms Bereich verwirklichen kann. Du erwartest offensichtlich eine Funktion, die den Prozessor für eine begrenzte Zeit zum Nichtstun verurteilt. Sowas wäre machbar, es gibt aber auch die Möglichkeit, dass diese Zeit zur Erledigung anderer Aufgaben genutzt wird. Welchen Vorteil siehst du, diese Zeit ungenutzt verstreichen lassen?
Ich will damit einen DS18B20 Temperatursensor ansprechen. Dazu muss ich den Pin der Datenleitung für eine gewissen Zeit auf High und dann wieder auf Low schalten, um mit dem Sensor zu kommunizieren.
Nicht die allerfeinste Art, aber angepasst für den STM32F4-Discovery @ 168MHz mit Optimierung -OS (Die Optimierung sollte keinnen allzugrossen Einfluss haben, da delay_us() eine inline-asm Funktion ist!
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.