Archiv verlassen und diese Seite im Standarddesign anzeigen : AD Wandler richtig benützen
ShadowPhoenix
29.04.2004, 00:43
Hallo!
Ich wollte unter Bascom mit dem Befehl PRINT einen AD-Port in einem Terminal ausgeben.
Mein Code sah so aus:
Config PortC = Input
Do
Print PortC.5
Loop
Aber das fuktionierte irgendwie nicht.
Dann versuchte ich, den Wert von PortC.5 in einer Variable zu speichern, und diese auszugeben:
Config PortC = Input
Dim printvar as integer
printvar = PortC.5
Do
Print printvar
Loop
Aber da kamen auch nur Fehler.
Wie kann ich einen AD-Wert eines Pins in einem Terminal ausgeben?
Mfg,
ShadowPhoenix
PS: Statt PORTC funktionierte es auch NICHT mit PINC.
Aber da kamen auch nur Fehler.
Was heisst "da kamen nur Fehler" ?
Beim compilieren kommen bei mir in Bascom bei beiden Versionen deines Codes keine Fehler.
Oder kommen bei der Ausgabe Fehler, wenn du das Programm im Controller ausführst?
Was das Programm angeht, würde ich da eine kleine Pause in die Schleife einfügen. So schnell wie der Controller die Schleife durchlaufen kann ist eine serielle Schnittstelle nicht, d.h. der Controller muss immer warten bis die Übertragung fertig ist. Da ist es glaube ich besser die Wartezeit selber zu definieren.
Ausserdem liest du´in Version 2 nur einmal den Eingang ein und gibst dann in der Schleife immer denselben Wert aus. Besonders viel Sinn ergibt das nicht, einen Fehler sollte es allerdings auch nicht verursachen.
Dino Dieter
29.04.2004, 12:18
Hallo
Schau doch mal in der Hilfe von BASCOM unter getadc.
Du mußt den AD Wandler erst einstellen und starten.
Danach kannst du halt mit getadc den Wert deines gewünschten AD port einlesen.
MFG
Dieter
ShadowPhoenix
29.04.2004, 15:01
@Gast
Bei Code2 kommen bei mir sehr wohl Fehler: (hmm)
-Error: Can't find HW-register [DDRC ]
-Error: Invalid Datatype [0]
@Dino
Wenn mein Code nun so aussieht, könnte das dann funktionieren?
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word , Channel As Byte
Channel = 0
Do
W = Getadc(channel)
Print "Channel " ; Channel ; " value " ; W
Incr Channel
If Channel > 7 Then Channel = 0
Loop
End
MfG,
ShadowPhoenix
Abfrage und Anzeige des Wertes über RS232 z.B. beim RNBFRA Board
Const Ref = 5 / 1023
Dim I As Byte
Dim W As Word
Dim Volt As Single
Config Adc = Single , Prescaler = Auto
$baud = 9600
$crystal = 8000000 'Quarzfrequenz
Portd.6 = 0 'Schrittmotoren erst mal ausschalten
Start Adc
Do
W = Getadc(4)
Volt = W * Ref
Volt = Volt * 5.2941
Print "Spannung: " ; Volt
Waitms 200
Loop
End
Hallo ShadowPhoenix,
Bei Code2 kommen bei mir sehr wohl Fehler: (hmm)
-Error: Can't find HW-register [DDRC ]
-Error: Invalid Datatype [0]
Du hast den Chip falsch eingestellt -->Options->Compiler->Chip
Wenn mein Code nun so aussieht, könnte das dann funktionieren?
klar, den hast du ja direkt aus der Hilfe kopiert.
Hast du ihn auch verstanden?
Gruss, Michael
Dino Dieter
29.04.2004, 15:23
Hallo Gast
Der Code sollte so schon gehen. Du kennst aber den Simulator in Bascom. Der kann auch AD Wandler simulieren. Drücke doch mal F2 in Bascom.
MFG
Dieter
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.