ADC mit Bascom Basic

Gast #63086
Lesenswert?
• ▲
▼
Moin!

Erstmal muß ich ein Lob loswerden: Diese Seiten haben mich auf das
basteln mit dem ATMega8 gebracht und es macht mir viel Spaß!

Nun habe ich irgendwie ein nicht lösbares Problem:

Nachdem ich schon Assembler ausprobiert habe um eine am ADC Eingang
gemessene Spannung auf dem LCD ausgzugeben und dies auch klappt bin ich
ein wenig "faul geworden" und nutze BASCOM Basic um die gleiche
Funktion darzustellen.

Mit folgendem Programm, daß bis auf die LCD Ausgabe dem des Beispieles
in BASCOM Basic entspricht hab ich es versucht:


$regfile = "4433def.dat"
Config Adc = Single , Prescaler = Auto , Reference = Avcc

Start Adc

Dim Messspannung As Word
Dim Kanal As Byte
Kanal = 0

Cls
Lcd "Der Widerstand ="
Wait 1

Do
  Messspannung = Getadc(Kanal)
  Lowerline                            'select the lower line
  Lcd Messspannung
  Lcd "  Kanal "
  Lcd Kanal
  Incr Kanal
  If Kanal = 8 Then Kanal = 0
  Wait 1
Loop
End




FAZIT: Er zeigt immer 1023 als Wert an. Was mache ich falsch?

Danke für Eure Hilfe, Michael
Gast #63090
Lesenswert?
• ▲
▼
JUHU!

Es funzt wenn ich die erste Zeile herausnehme. Bleibt die Frage warum
dies so ist? Beim Assembler Programmieren nutze ich diese
"4433def.dat" doch auch. Und ich habe diese Datei aus dem Tutorial
für den Atmega8...

könnt ihr mir das kurz erklären?

dane für diese schnelle antworten! supi!
Gast #63091
Lesenswert?
• ▲
▼
Ganz einfach.

Beim M8 liegen die AD's woanders als beim 4433 deswegen gibt das mit
der falschen Def probleme.

Immer die passende zum Controller gehöhrende Def nehmen.

Schließlich würdest du nen Porsche nicht nach VOLVO-Tabelle einstellen
oder ? ;)
Gast #63092
Lesenswert?
• ▲
▼
Die Zeile im BasicProgramm überschreibt die Einstellung die über das
Menu gemacht wird.
Das gilt auch für andere Einstellungen wie Pin-Configuration, Baudrate,
Quarzfrequenz usw.

Bernd
Gast #63093
Lesenswert?
• ▲
▼
wie kann ich eigentlich kommazahlen auf dem display ausgeben? beim adc
hat man ja werte von 0 bis 1023. aber wie kann ich daraus jetzt ne
voltzahl (also 0 bis 5 Volt) machen, die auch kommastellen hat???
double gibts ja bei bascom nicht als variablen-typ.
Gast #63095
Lesenswert?
• ▲
▼
also ne single-variable kann zahlen mit kommastellen aufnehmen? und dann
soll ich den inhalt der single-variable in nen string schreiben und
dann aufs lcd? welchen konvertierungsbefehl brauch ich denn dafür? geht
das mit

String = Fusing(Single , "#.##") ???
Lcd String
Gast #63096
Lesenswert?
• ▲
▼
Mit der Formatierung ist nur nen Vorschlag.

Da man ja meist nur einige Nachkommastellen braucht kann man sich den
Rattenschwanz auch gleich schön zurecht machen.
Schließlich ist auf nem Display nie genug platz und Springende Anzeigen
sind auch nicht schön.

Single ist der Variablentyp

Also zb.

Dim X as Single
Dim y as String*5    (oder je nachdem wieviele Zeichen du brauchst)

Und dann zb.

Y=Fusing(x , "#.##")

LCD Y

In der (immernoch schlecht organisierten) Hilfe zu Bascom findest du
auch alle weiteren Infos wie man den Text Formatiert und welche
Optionen es dazu noch gibt.

Ich kann eh nur empfehlen die ganze Hilfe mal einfach abzugrasen.
Alle behält man zwar nicht aber irgendwie weiß man bei nem Problem
später das es da ne Möglichkeit gab.
Dann fällt die Suche einfacher aus ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren