Oder schaut auf mikrocontroller.net im avr-gcc tutorial nach.
Oder schaut auf mikrocontroller.net im avr-gcc tutorial nach.
Ich danke euch für eure Initiative, von Hilfe kann jedoch nicht die Rede sein.
Sobald es ein wenig komplizierter wird, verweist jeder auf die "Eigeninitiative" und Forumsbeiträge. Das ist schon witzig...oder traurig???
Harte Kritik - und ich kann sie nicht nachvollziehen. Immerhin hattest Du Deinen Code a) nur teilweise und b) erst im sechsten Posting vorgestellt und - ganz wichtig - c) ICH (wohl jeder hier) weiß nicht was für ein Makro Du hinter... von Hilfe kann ... nicht die Rede sein ... Sobald es ein wenig komplizierter wird, verweist jeder auf die "Eigeninitiative" ...
versteckt hast. Denn nach Deiner wiederholten Darstellung liegt Dein Problem in der Abarbeitung beim Tastendruck und GENAU DEN hast Du noch nicht nachvollziehbar vorgelegt. Und deswegen kann man Dir auch nicht wirklich sinnvoll helfen! Da hilft auch kein Vorwurf wegen mangelnder Hilfbereitschaft. Ich sehe das Thema mangelnder Hilfe eher an der zögerlichen und ungenügenden Problembeschreibung.Code:if (bit_is_clear()1<<PXX)
Wo im Code ist immer noch unklar und, wie schon gesagt, was hinter dem Makro steckt kann nur vermutet werden.Würde auch kein bisschen schaden wenn du den aktuellen Code mal posten würdest ...
Ciao sagt der JoeamBerg
Und der Verweis auf das Atmega Datenblatt (Dessen Lektüre eigentlich selbstverständlich sein sollte) ist durchaus legitim. Ich will dir trotzdem mal kurz die richtigen Links zusammenstellen. Allgemein Interrupts https://www.mikrocontroller.net/arti...C-Tutorial#ISR Weiter unten steht auch die Register beschreibung von einem At90 drin. Im Atmega32 Datenblatt (Atmega32 hab ich einfach mal beispielshalber jetzt ausgewählt) Interrupts: Seite 44 External Interrupts ( das was du willst): Seite 66 Interressant zum programmieren ist meist nur die Registerbelegung Seite 68 Und ein Beispiel in C: http://www.avr-tutorials.com/interru...-c-programming
Ich weiß nicht ob unsere Hilfe Sinn macht. Ist wohl der gleiche Anfänger der schon vor drei Jahren beim mikrocontrollernet bemerkenswerte Fragen gestellt hat.
Geändert von oberallgeier (05.01.2014 um 13:20 Uhr) Grund: Unpassenden Textrest gelöscht
Ciao sagt der JoeamBerg
Hallo zusammen,
darf ich sagen, und wahrscheinlich habt ihr das schon längst mitbekommen, dass der Code aus dem Buch "AVR Mikrocontroller in C-Programmieren" stammt und zwar geht es hier um die Tagesschau Uhr..
Ich weiß, dass sich Codes meistens wiederholen oder auch "fast" gleich geschrieben sein können aber selbst die Anordnung ist die gleiche Art.
Der Autor in diesem Buch hat eine schreckliche Art Scripte zu schreiben, alles auf einer Zeile und viele Variablen sind nicht selbsterklärend, vor allem nicht, wenn man gerade anfängt für Microcontroller zu programmieren.
Ja, das ist korrekt - es ist anscheinend der "selbe" Code - aber was ist jetzt so traurig daran? Vielleicht das der Threadstarter einfach die Hälfte vom Code (sämtlicher Header einbindungen) im Post#6 weggelassen hat?
Das der Thraedstarter nicht mal sicher sagen kann das seine Hardware auch mit den 8MHz Quarz läuft? Und somit der Timer korrekt für diese Frequenz vorgeladen wird?
Und dass das erweitern dieser Uhr mit Taster zum einstellen ein Erweiterungsvorschlag ist? Der Threadstarter bishierhin nicht mal ansatzweise eine Taster programmiert hat?
Ansonsten sieht für mich die schreibweise des Autors nicht so schlecht aus. Vielleicht sollte man nicht einfach in irgendein Projekt reinspringen, solange man sich nicht einigermassen mit der Materie auskennt. Variablen wie hr = 20 , min = 0, sec = 0, tc in bezug auf Timer ...finde ich sind im bezug zur Aufgabe bzw Uhrzeit recht aussagekräftig genug.
Manche Teile in einem C.Code sind aber nicht extra vom Programmierer gemacht worden, er benutzt sie nur "Hardware" nah: Das sind dann Register wie TIMER1 oder TCNT1. Da hilft es nur sich Stück für Stück in diese Dinge einzuarbeiten damit man die Register und Schreibweise sowie die Benutzung kennelernt.
1. Ein Ledblinker Projekt mit wait
2. Interrupt; z.B. wait wird abgebrochen auf 1.
3. Timer auf 2. ohne wait
Geändert von HeXPloreR (05.01.2014 um 18:07 Uhr)
Lesezeichen