Hallo Ich bin nach dem einstieg in die AVR MCU`s nun damit beschäftig meine c Kenntnisse ( oder was man so nennt ) zu vertiefen. Aber ich finde keine Vernünftige C Seite. Mit vernünftig meine ich das, sie schnell bei der Umsetzung von Aufgabenstellung hilfe leistet. Ich will keinen fertigen Codes!!! Die passen eh nicht oder nur selten!!! Eher eine Seite, die einem zu einem Bestimmten Befehl schnell Hilfe gibt. z.b. Ich weiss, das ich mit Delay ( bla bla bla) irgendwie eine Verzögerung hinbekomme, aber ich kenne die Syntax nichtmehr und ich weis auch nicht welche Headerdatei ich dazu einbinden muss. Bei welcher Seite, könnte ich mit der Suchfunktion da schnell auf eine Ergebniss kommen. bis dann Stephan
Hi, hier mal ein Link zu einem guten OPENBOOK fuer C http://pronix.de/modules/C/openbook/c_programmierung_9.php?PHPSESSID=d... MFG dirk
Sehr gut :-)! Will noch jemand den selben Link posten? Aber danke für die Hilfe, das sieht schon nicht schlecht aus. Ist wohl etwas umfangreicher, als die vielen kleinen Tutorials, die man so im Netz findet. Ich dachte aber eigentlich eher an eine Site, bei der es eine Suchfunktion gibt unter der man unter einem Begriff suchen kann. So wie eben z.b funktionen wie delay oder so.
C setzt sich aus zwei Teilen zusammen: . Der Sprache selbst. Dazu gehören Operatoren, Ausdrücke, Schlüsselwörter und wie sie alle heißen. Das findest Du in jedem guten C-Buch praktisch architekturunabhängig. . Der Standardbibliothek. Sie liefert eine Reihe von Makros und Funktionen für allgemeine Aufgaben. Der C-Standard selbst definiert einen Umfang, konkrete Implementierungen erweitern diesen oft. Im Falle von Microcontrollern wird oft nur eine Teilmenge (+ eigene Erweiterungen) implementiert. Fazit: generisches C hilft Dir hier nur bedingt. Für AVR-GCC: schau ins Manual der avr-libc.
Soweit ich weiss, gibt es nirgends ein delay(). Wie Jörg schon sagte: C hat nur ein paar Sprachelemente, z.B. Zuweisungen, for, while, switch usw. Alles andere steckt in Bibliotheken. Unter Linux z.B. wird die libc automatisch dazugelinkt, und dann hast du printf, strcpy usw. zur Verfügung. Bei Mikrocontrollern hast du auch nur die Funktionen, die die Bibliothek zur Verfügung stellt, also z.B. die avr-libc (übrigens: super Arbeit!), daher musst du in dieser Doku nachsehen, was es alles gibt. delay() musst du dir halt selber schreiben, z.B. so: void delay (uint16_t us) { while (us) { us--; asm volatile (" nop"); asm volatile (" nop"); } } Wieviel nop du reinmachst hängt logischerweise von deinem CPU Takt ab. Obiges Beispiel passt ca. für 8MHz. Ein genaueres delay sieht bei mir so aus: void delayms (uint16_t ms) { milliseconds = ms; while (milliseconds > 0) asm volatile (" nop"); } wobei "milliseconds" in einer Interruptroutine, die alle 1 ms aufgerufen wird, heruntergezählt wird.
hab vergessen: delay in meinem Beispiel erwartet Mikrosekunden, delayms erwartet Millisekunden als Parameter.
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.