mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC mit Bascom Basic


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Programm ist ok aber ich vermute mal das du irgendwo in der
Schaltung was vergessen hast.

Sind die Pinne 20 und 22 richtig angeschlossen ?

Wie gibst du dein Messsignal am Port an ?

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Programm steht das Du den 4433 benutzt, schreibst aber was von M8.

Ich würde die Zeile löschen und unter Option/Compiler/Chip den M8
eintragen.

Bernd

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yo,jetzt wo de es sagst.
Kann ja nicht funzen.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ? ;)

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm "Single"

Ich nehme zum Anzeigen immer String da kann ich die Single gleich
richtig Formatieren und die Ausgab siehht schön aus

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, vielen dank!

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kein Problem

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.