Hallo,
ich habe ein evaluation board gekauft und der Hersteller lieferte dazu
paar Beispiel Codes um mit dem Board bisschen spielen zu können.
Die Hardwarenahe C-Programmierung ist zwar neuland für mich aber ich bin
trotzdem der Meinung, dass es so nicht funktionieren kann (Es
funktioniert auch nicht).
Laut Hersteller Soll der Speaker an PC.0 angeschlossen werden. Ich sehe
aber nirgendswo im Code, dass der C Port konfiguriert wurde! Oder, dass
er die Anweisung bekommt, ein Signal auszugeben!
Ich wäre euch dankbar, wenn ihr mir da weiterhelft.
LG,
Georg
Georg schrieb:> unsigned char timer_value;
Schreib da mal bitte ein 'volatile' davor. Der Grund ist, das der
Compiler zwar sieht, das du im Hauptprogramm diese Variable vorbesetzt,
für ihn sind ISR Routinen aber Programmteile, die nie angesprungen
werden.
'volatile' weist den Compiler an, trotzdem diese Variable nicht
wegzuoptimieren.
Waldemar Z. schrieb:> der adc ist scheinbar auf pc0 eingerichtet. Speaker soll an pb0
klar... sorry mein Fehler... Ich meinte natürlich PB.0
Ich sehe aber trotzdem keine Zeile wo der PORT C defeniert wird.
Matthias S. schrieb:> Schreib da mal bitte ein 'volatile' davor.
Das ist in dem Beispiel nicht nötig.
> Der Grund ist, das der Compiler zwar sieht, das du im Hauptprogramm> diese Variable vorbesetzt, für ihn sind ISR Routinen aber> Programmteile, die nie angesprungen werden.
Das würde er nur denken, wenn die Interruptroutine als static deklariert
wäre. Dann würde er die komplette Routine wegoptimieren.
Georg schrieb:> Ich sehe aber trotzdem keine Zeile wo der PORT C defeniert wird.
Da muss auch nichts Spezielles für den PORT C definiert werden. Es muss
lediglich der Kanal über ADMUX eingestellt und der ADC über ADCSRA
aktiviert werden. Beides wird im Programm auch getan.
Georg schrieb:> klar... sorry mein Fehler... Ich meinte natürlich PB.0> Ich sehe aber trotzdem keine Zeile wo der PORT C defeniert wird.
Wenn der ADC auf PC0 eingestellt ist, wird PC0 als analoger Eingang
verwendet, daher kann man den Pin nicht für digitale Ein-/Ausgaben
verwenden.
Lies dazu mehr im Datenblatt des verwendeten Mikrocontrollers im
Abschnitt zum ADC.
Eine eigene Frage?
Dieser Thread ist über 9 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.