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
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 ?
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
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!
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 ? ;)
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
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.
Nimm "Single" Ich nehme zum Anzeigen immer String da kann ich die Single gleich richtig Formatieren und die Ausgab siehht schön aus
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
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 ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.