Guten Morgen, ich suche seit mehreren Tagen eine Hilfe oder ein Nachschlagewerk, wo für Microchip µC in der Sprache "C" programmiert wird. Folgendene Seiten hab ich schon gefunden & finde es nicht für mein Problem ansprechend: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR#Die_PWM-Betriebsart http://www.mikrocontroller.net/articles/Interrupt Ich würde mich eine Hilfe dies bezüglich sehr freuen, weil es mir bei meinem Projekt sehr weiter hilft. MfG, Lukas
Vielleicht hier: http://pic-projekte.de/wordpress/?p=133#more-133 Dort wird auch auf Interrupts eingegangen. Speziell was Interrupts betrifft findest du die genaue Vorgangsweise in der Dokumentation des verwendeten Compilers. (ohne Kentniss der PIC-Familie und des verwendeten Compilers kann man kaum sinnvolle Tips geben).
Dir ist klar, dass der erste Link für AVR's ist? Erklärt dir zwar das Beispiel relativ gut, da es vom Prinzip her überall das selbe sein dürfte, allerdings wirst du erstens mit den Registernamen nichts Anfangen können, zweitens wirst du kleine Unterschiede zwischen PIC <-> AVR so nicht feststellen. Für das bessere Verständniss von PIC's rate ich wie immer zu: http://www.sprut.de/electronic/pic/index.htm Sprut ist eine geniale Seite, wenn auch langsam etwas alt. Da du dich aber auch nicht gerade für den neusten Controller entschieden hast, wird das schon gehen. Sprut basiert zwar Hauptsächlich auf Assembler, du findest sehr viele Beispiele aber auch in C. Ansonsten ist das Thema an keinem mir bekannten Ort wirklich ausführlich erklärt. Am besten wirst du vorran kommen, wenn du deine Probleme die sich dir beim Programmieren stellen individuell gezielt googelst, oder du kaufst dir ein Lernbuch, davon gibt es viele tolle und die kosten alle nicht sonderlich viel. Hoffe konnte helfen Gruss
Danke für die schnellen Antworten. San Lue schrieb: > Dir ist klar, dass der erste Link für AVR's ist? Erklärt dir zwar das > Beispiel relativ gut, da es vom Prinzip her überall das selbe sein > dürfte, allerdings wirst du erstens mit den Registernamen nichts > Anfangen können, zweitens wirst du kleine Unterschiede zwischen PIC <-> > AVR so nicht feststellen. Ich weiß, dass die Links von AVR ist bzw. AVR´s. Es sollte halt nicht so aussehen, als würde ich hier irgendwas reinposten, anstatt selber zu googlen. Chris B. schrieb: > Speziell was Interrupts betrifft findest du die genaue Vorgangsweise in > der Dokumentation des verwendeten Compilers. > (ohne Kentniss der PIC-Familie und des verwendeten Compilers kann man > kaum sinnvolle Tips geben). Kenntnisse über den PIC und den Compiler habe ich, weil wir seit einem Jahr in der Ausbildung programmieren. Das Problem ist nur, dass mein Ausbilder mir keine Hilfe kann über Interrupts und in der Schule machen wir seit einem halben Jahr Assembler Grundbefehle. San Lue schrieb: > Am besten wirst du vorran kommen, wenn du deine Probleme die > sich dir beim Programmieren stellen individuell gezielt googelst, oder > du kaufst dir ein Lernbuch, davon gibt es viele tolle und die kosten > alle nicht sonderlich viel. Ich google seit circa einem Monat nach meinem "Problem" und lande nur auf AVR Seiten bzw. auf AVR Foren. Außerdem hatte ich mir 2 Bücher schon gekauft für "C-Prgrammieren". MfG, Lukas
Hallo Lukas vielleicht hilft Dir diese Seite weiter: [http://www.engscope.com/pic24-tutorial/7-interrupts/] mfG GroberKlotz
Oder hier, das ist für PIC16 und ziemlich ausführlich. http://www.gooligum.com.au/tutorials/midrange/PIC_Mid_C_3.pdf
Lukas K. schrieb: > Ich google seit circa einem Monat nach meinem "Problem" Was ist denn dein Problem? Wenn du es uns beschreiben magst, können wir dir eventuell weiterhelfen. Lukas K. schrieb: > und in der Schule machen > wir seit einem halben Jahr Assembler Grundbefehle. Das ist endlich mal schön zu hören. Auch ich habe die ersten zwei Jahre in der Schule nur Assembler programmiert, glaub mir, du wirst später einmal sehr froh darüber sein es zu beherrschen. Zumindest ich bin regelmässig froh darüber, da es mir sehr weiterhilft.
San Lue schrieb: > Was ist denn dein Problem? Wenn du es uns beschreiben magst, können wir > dir eventuell weiterhelfen. Ich habe nämlich vor eine binäruhr zu programmieren mit einem DCF77-Empfänger. Wo dran ich scheitere ist, dass mir die Grundlagen fehlen für externe Interrupts, zwei Timer zu programmieren, Abtastung von Signalen & parallel zum Interrupt das Hauptprogramm weiterlaufen zu lassen (die Uhr soll nämlich durch den zweiten Timer weiter zählen bis zur Synchronisierung sprich Ablauf des interrupts) MfG, Lukas
Lukas K. schrieb: > Kenntnisse über den PIC und den Compiler habe ich Wir wissen aber nicht welcher Compiler du verwendest und je nach Compiler wird das mit den Interrupts ein bisschen anders gemacht. Lukas K. schrieb: > in der Schule machen > wir seit einem halben Jahr Assembler Grundbefehle. Habe wir auch, bei uns waren Interrupts in diesem halben Jahr auch drin. Was genau ist dein Problem mit den Interrupts? Wie du alles Konfigurieren musst, oder nur wie du die ISR erstellst,...? Da du ASM kannst, sollte es kein Problem sein Sprut zu verstehen: http://www.sprut.de/electronic/pic/grund/timer/timer.htm http://www.sprut.de/electronic/pic/int/int.htm Die Register bleiben die gleichen ob C oder ASM.
:
Bearbeitet durch User
Max H. schrieb: > Wir wissen aber nicht welcher Compiler du verwendest und je nach > Compiler wird das mit den Interrupts ein bisschen anders gemacht. Ich benutze MPlab mit dem HighTech-Compiler (C). # Max H. schrieb: > Was genau ist dein Problem mit den Interrupts? Das Problem ist, dass ich noch nie irgendwas mit Interrupts programmiert habe. Was unser Ausbilder beigebracht hat in "C" ist bis jetzt nur, wie man eine Variable hochzählen lässt, verschiedene Programme durchlaufen lassen kann, einfache Grundlagen des Multiplexens. Ich fühle mich persönlich jetzt wie ein Kind im Meer, was nicht schwimmen kann.
Lukas K. schrieb: > Wo dran ich scheitere ist, dass mir die Grundlagen fehlen für externe > Interrupts, zwei Timer zu programmieren, Abtastung von Signalen & > parallel zum Interrupt das Hauptprogramm weiterlaufen zu lassen Nicht immer so kompliziert denken. Du brauchst nur einen Timerinterrupt, z.B. 10ms. Damit kannst Du bequem die Puls/Pausendauer abtasten und auch eine Uhr (100 * 10ms = 1s) laufen lassen.
Lukas K. schrieb: > Ich fühle mich persönlich jetzt wie ein Kind im Meer, was nicht > schwimmen kann. Nicht den Kopf hängen lassen. Als ich damit angefangen habe, habe ich mir auch oft den Kopf zerbrochen. Im zweiten Link, welchen Max gepostet hat ist ein super Beispiel, damit habe ich damals auch meinen allerersten Interrupt Programmiert. Am besten nimmst du diesen Code und passt ihn für deinen Controller an, viel zu machen gibts da ja nicht. Hast du das erst einmal geschafft, kannst du dann auch andere Interrupts ausprobieren, als Grundgerüst kannst du ja immer diesen Code verwenden. Peter Dannegger schrieb: > Nicht immer so kompliziert denken. Gutes Stichwort, nur leider nicht immer ganz so einfach, wenn einem die Kentnisse fehlen und man oft aus einer Fliege einen Elefanten macht. Nimm dir das von Peter zu Herzen, den Ablauf den er da beschreibt ist eigentlich bereits alles was du brauchst.
Da du ASM vermutlich besser kannst als C könntest du versuchen mit Spruts Hilfe eine KED per Timer Interrupt blinken zu lassen um Timer und Interrupts zu verstehen und das gelernte dann in C anwenden.
Max H. schrieb: > Da du ASM vermutlich besser kannst als C könntest du versuchen mit > Spruts ... Also ASM kann ich genauso viel wie in C. Sprich, ich kann in ASM & C eine Stromstoßschaltung programmieren ohne Fehler. Da aber mein Lehrer jetzt mit C anfängt in der Schule nach der Programmierung der Stromstoßschaltung, wird mein Wissen in Richtung ASM nicht weiter wachsen. Deswegen würde ich ja gerne in C das alles lernen. MFG, Lukas
Lukas K. schrieb: > Das Problem ist, dass ich noch nie irgendwas mit Interrupts programmiert > habe. Was kein Problem ist da bei einem Interrupt eine Funktion aufgerufen wird. die Interrupt Funktion. Das war's mehr ist da nicht von der C Seite aus. Außer natürlich das erst beim Rücksprung ins Hauptprogramm das Interrupt Flag gesetzt werden sollte. Dann gibt es noch ein wenig Lokalkolorit, je nach Prozessorsorte. Bei PICs hat sich Mikrochip folgendes überlegt. 1. Wir nehmen nur eine Routine für den Interrupt. Wenn mehrere kommen muss der Autor des Programms halt abfragen welche ausgelöst wurden. 2. Wenn alle Interrupts abgefrühstückt sind kann er die Routine verlassen. Wenn er so schlau ist zu prüfen ob am Ende noch einer gekommen ist dann ist das schön für ihn, er hat kapiert was wir uns gedacht haben. Das Problem des Interrups im Interrupt ist per Design gelöst.
Guten Morgen, mein Ausbilder will mit mir bald anfangen mit mir Interrups programmieren & zwar die, wo ein Timer nach einer bestimmten Anzahl von Überläufen das Interrup programmunabhängig aufruft. Ich hatte auch schonmal angefangen sowas zu programmieren, aber entweder hat mein Programm gar nicht mehr funktioniert oder man hat über die Leds den Interrup nihct gesehen (sprich, es wurde keienr ausgelöst).
Lukas K. schrieb: > mein Ausbilder will mit mir bald anfangen mit mir Interrups > programmieren & zwar die, wo ein Timer nach einer bestimmten Anzahl von > Überläufen das Interrup programmunabhängig aufruft. > > Ich hatte auch schonmal angefangen sowas zu programmieren, aber entweder > hat mein Programm gar nicht mehr funktioniert oder man hat über die Leds > den Interrup nihct gesehen (sprich, es wurde keienr ausgelöst). Und was erwartest du nun von uns? Du erzählst uns gerade, was du bereits getan hast, was nicht funktioniert hat und fertig. Poste doch am besten mal deinen Code, dann können wir ihn anschauen und vielleicht finden wir ja den Fehler.
Was ich eigentlich gerne wollte ist, dass mir eine Hilfe bzw. eine Seite gezeigt wird, wo ich Interrupts & Timer Einstellungen auch in C wieder finden kann & dementsprechend auch programmieren kann. Zusammengefasst nichts andere als eine Hilfestellung für Interrupts & Timer.
Sieh' mal hier (als Beispiele) (1) Bereits genannt wurde folgende Seite (...bis wohl noch nicht zum Durchlesen gekommen...) http://www.gooligum.com.au/tutorials/midrange/PIC_Mid_C_3.pdf (2) http://www.microchip.com.edgekey.net/forums/m689238.aspx?print=true (3) mal was in deutsch http://www.jb-electronics.de/html/elektronik/digital/d_universal_uhr_ic.htm?lang=de http://www.jb-electronics.de/downloads/elektronik/digital/UniversalUhrIC.zip Gruss
Durchgelesen hatte ich mir das schon aufjedenfall, bloss hab ich die Links/Seiten hier nicht gesehen. Danke schön MfG
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.