hallo,
es geht um das Auslesen einer Spannung am internen ADC des mega8.
ich möchte den Wert einlesen und abhängig davon 5 LED`s ansteuern (1/5
von Aref -> eine led an, 2/5 -> twei led´s an...)
es geht darum, dass AVR-Studio bei einem klick auf build folgende fehler
anzeigt:
c:24: warning: implicit declaration of function 'If'
c:25: error: expected ';' before '{' token
die Fehler beziehen sich auf diese Zeilen:
brauchst du nicht mehr testen, ob result >= 204 ist. result MUSS >= 204
sein, ansonsten würde dieses if überhaupt nicht mehr 'befragt' werden,
weil der erste if schon zugeschlagen hätte. Detto für alle anderen else
if
compiliert zwar, macht aber nicht das was du willst :-)
De facto steht da
1
elseif(result>=614&&result<2)
und das kann per Definition nie true sein. Eine Zahl kann nicht
gleichzeitig größer 614 und gleichzeitig kleiner 2 sein :-)
In Programmiersprachen gibt es nur ganz selten ein Dezimal-'Komma' und
wenn, dann sind das verhunzte Programmiersprachen, die auf Teufel komm
raus ins Deutsche übersetzt wurden.
In Programmiersprachen hat man praktisch immer einen Dezimal-'punkt'.
Allerdings erhebt sich hier die Frage, warum du mit 819.2 vergleichen
willst :-)
>> compiliert zwar, macht aber nicht das was du willst :-)>> De facto steht da>>
1
>elseif(result>=614&&result<2)
2
>
>> und das kann per Definition nie true sein. Eine Zahl kann nicht> gleichzeitig größer 614 und gleichzeitig kleiner 2 sein :-)
Mein Fehler.
De facto steht da
1
elseif(2)
der Komma Operator hat die niedrigste Priorität aller Operatoren
was sucht das return innerhalb der while-Schleife?
Wenn du Einrückungen ernst nimmst, dann kann so etwas nicht auftreten!
Es ist völlig unmöglich, dass eine Anweisung in einem Block an derselben
Spalte beginnt, wie die }, die den Block schliesst.
funktioniert aber trotzdem nicht. ich hab auch noch eingestellt, dass er
den PIN5 von PORTB aktivieren soll, aber das macht er nicht.
Wo liegt hier noch der Fehler?
Es wird auch ohne Fehler und Warnungen erstellt und gebrannt, aber auf
dem Board tut sich nichts.
Hunt Worker schrieb:
> Wo liegt hier noch der Fehler?
Tu dir selbst einen Gefallen und benutze zunächst die ADC Routine aus
dem Tutorial. Die geht immer noch schnell genug, dass du Schwierigkeiten
haben wirst, den LED zu folgen.
> Es wird auch ohne Fehler und Warnungen erstellt und gebrannt,
Das heist nicht viel.
"Das Segelboot durchflog die Gabel." ist ein deutscher Satz, der alle
Regeln der deutschen Sprache einhält. Kein Duden-Mitarbeiter könnte
irgendetwas dagegen einwenden.
Trotzdem ist er sinnlos.
so,
ich habe jetzt auch noch ein Display angeschlossen, um den Wert
angezeigt zu bekommen.
nachdem ich den Artike über Festkommaarithmetik gelesen und
angewendet habe bekomme ich das angezeigt:
<Spannung: > komisches Zeichen < V>
Das komische Zeichen siet so aus:
# # # #
# # # # #
# # # #
# # #
# # # #
# # # # #
# # #
# # # #
kann mir jemand weiter helfen?
Das
> uint32_t spannung
plus das
> itoa(spannung, Buffer, 20);
Funktioniert nicht, ("int to ascii", nicht uint32_t) und der dritte
parameter ist auch verkehrt.
So waere es etwas besser: