Spannung, z.B. Widerstandsänderung bei einem Temperaturfühler, am LED Display in C° anzeigen
Hallo Roger!
Ich werde zuerst auf die Ausgabe der Daten auf ein LCD eingehen. Und dann werde ich den Analog/Digital-Converter vorstellen.
mfg
Gerold
Genau das fände ich prima.
Das mit dem LCD habe ich bereits raus, aber mal sehen was es da noch gibt, was ich noch nicht kann.
Achja richtig - eine Frage habe ich direkt dazu: Wie kann ich bei einem eine Zahlenausgabe eine Null voran stellen, z,B. dass er bei "1" ausgibt "01" und eben bei Zehn die null dann wieder wegnimmt?
vielen dank.
die µC werden bald bestellt, und dan kan ich gleich alles durcharbeiten.
freue mich schon auf den nächsten Baitrag!
Noch ne Frage: giebt es auch Controler mit eingebautem DA/wandler?
Anmeldungsdatum: 03.12.2006 Beiträge: 1195 Wohnort: Klinik der misshandelten Kuscheltiere
Verfasst am: Di 01.Apr 2008 20:45:02 Titel: Für Bastler
Hoi
für die AD eingänge kann ich nur wärmstens empfehlen diese mit einer Schutzschaltung zu versehen .
Eingangsimpedanz bleibt bei 1M, max Eing. spannung ist 5 Volt
_________________ Eine Weiterverbreitung ohne ausdrückliche Genehmigung ist untersagt. Für Schäden, lehnen wir jegliche Haftung ab.
Anmeldungsdatum: 27.07.2007 Beiträge: 925 Wohnort: Oberhofen im Inntal (Tirol)
Verfasst am: Di 01.Apr 2008 20:47:35 Titel:
Bauteiltöter hat folgendes geschrieben:
giebt es auch Controler mit eingebautem DA/wandler?
Hallo Bauteiltöter!
Nein, gibt es nicht, aber du kannst die PWM (Pulsweiten Modulation) zum Ansteuern von Motoren und zum Dimmen von LEDs verwenden.
Aus diesem PWM-Signal kann man auch ein halbwegs glattes Analogsignal generieren. Man braucht dazu einen oder mehrere Filter. Es gibt auch Schaltungen mit OPs, usw. Aber damit habe ich mich noch zu wenig befasst.
Anmeldungsdatum: 27.07.2007 Beiträge: 925 Wohnort: Oberhofen im Inntal (Tirol)
Verfasst am: Mi 02.Apr 2008 17:57:40 Titel: 3x4 Tastenfeld
Hallo!
Es ist die Frage aufgetaucht, wie man ein typisches 3x4 Tastenfeld (eine Nummerntastatur) mit Bascom einlesen kann.
Bascom hat dafür bereits einen HighLevel-Befehl eingebaut. So etwas wie DEBOUNCE, nur für eine Tastenmatrix bis zu 4x4 Tasten (oder sogar bis 6x4 Tasten) --> GETKBD. Ich habe mir vor kurzem so ein Tastenfeld bei Conrad http://www.conrad.de/goto.php?artikel=709840 besorgt, welches ich zum Testen verwende. Wenn jemand einen Händler weiß, der diese Dinger günstiger verkauft (auch nach Österreich), dann bitte her mit der Information. Denn über 6 Euro für so etwas ist doch etwas viel. Erst recht, wenn man es nur zum Testen braucht.
Das Datenblatt dieses 3x4-Tastenfeldes kann man sich bei Conrad herunterladen.
Die Spalte mit der "1" ist die erste Spalte. Die Spalte mit der "2" ist die zweite Spalte und die Spalte mit der "3" ist die dritte Spalte. Die Zeile mit der "1" ist die erste Zeile. Die Zeile mit der "4" ist die zweite Zeile. Die Zeile mit der "7" ist die dritte Zeile und die Zeile mit dem Stern ("*") ist die vierte Zeile. Das nur um Verwechslungen vorzeitig auszuschließen. -- Bitte nicht lachen, das ist alles schon passiert.
Für so eine Tastaturmatrix wird ein ganzer Port (8 Pins) benötigt. Auch wenn man für diese 3x4 Tastaturmatrix nur sieben Pins braucht. Aber der achte Pin wird bei jedem Durchlauf ebenfalls abgefragt. Da wir für die UART-Verbindung die beiden Pins PD0 und PD1 brauchen, bleibt nur mehr der PORT B übrig. Da ein externer Quarz an PB6 und PB7 angeschlossen wird, bleibt uns nichts anderes übrig, als auf den externen Quarz zu verzichten. Wer einen ATmega16 oder ATmega32 hat, kann dort natürlich auch andere, noch freie PORTs verwenden.
Der Bascom-Befehl GETKBD ist für die Abfrage so einer Tastaturmatrix zuständig. Und mit CONFIG KBD stellt man den Port ein, an dem die Tastaturmatrix angeschlossen wurde. Wer keinen ganzen Port übrig hat, muss auf diese HighLevel-Befehle verzichten und die Tastenabfrage händisch programmieren. Wie so etwas geht, wird im Buch "Programmieren der AVR RISC Mikrocontroller mit Bascom-AVR" von Claus Kühnel genau erklärt.
Wenn du GETKBD nachbilden möchtest, dann musst du eine Routine schreiben die in etwa so vorgeht:
Zuerst werden die Pins der Zeilen als Eingang mit internem PullUp-Widerstand definiert. Die Pins der Spalten werden als Ausgänge definiert und auf HIGH gesetzt. Zum Testen wird zuerst der Ausgang für die Spalte 1 auf LOW gesetzt. Dann wird geprüft ob der Eingang für die erste Zeile LOW oder HIGH ist (nimmt man dafür DEBOUNCE, dann wird es einfacher). Dann der Eingang für die zweite Zeile, dann die dritte und zuletzt die vierte Zeile. Dann wird der Ausgang der Spalte 1 wieder auf HIGH gesetzt und das Spiel beginnt mit der zweiten Spalte wieder von vorne. Irgendwann ist man alle Zeilen-/Spalten-Kombinationen durch und weiß welche Taste gedrückt wurde.
CONFIG KBD
Mit diesem Befehl stellt man den Port ein, an den die Tastaturmatrix angeschlossen wurde. Man kann damit die Matrix auch auf 6x4 Tasten erweitern, die DEBOUNCE-Zeit und ein Delay einstellen.
Beispiel:
Code:
Config Kbd = Portb , Debounce = 20 , Delay = 10
Diese Einstellung liefert bei meiner Conrad-3x4-Tastaturmatrix ein recht gutes Ergebnis. Man muss sich natürlich ein wenig spielen um die optimale Einstellung für das eigene Tastastenfeld heraus zu finden.
GETKBD
Dieser Befehl ist dafür zuständig, die Tastaturmatrix abzufragen und gibt einen Keycode für die empfangene Taste zurück. Wird kein Tastendruck erkannt, dann wird als Keycode die Zahl 16 zurück gegeben. Es wird also nicht der Text zurück gegeben, der auf der Taste steht, sondern es wird eine Zahl zurück gegeben, die die gedrückte Taste identifiziert. Diese Taste muss später noch dem Text, der auf der Taste steht, zugeordnet werden.
Beispiel:
Do
Keycode = Getkbd()
If Keycode <> 16 Then
Print Keycode
Waitms 200
End If
Loop
End
GETKBD scannt in der MainLoop den mit CONFIG KBD angegebenen Port nach einem Tastendruck. Immer wenn nichts gedrückt wurde, dann wird der Keycode 16 zurück geliefert (Vorsicht! Der Bascom-Simulator liefert 15 zurück -- warum auch immer.). Der gescannte KeyCode wird mit Print verschickt. Wichtig in diesem Code ist die Zeile ``WAITMS 200``, die sich darum kümmert, dass bei einem kurzen Tastendruck nicht hunderte mal der Keycode abgefragt und über die UART übertragen wird.
Die Einfachste Art, aus dem Keycode den Text der Taste zurück zu bekommen ist MID. Der Befehl MID kann aus einem Text einen Teil rausholen. Und das sieht als Beispiel so aus:
Do
Keycode = Getkbd()
If Keycode <> 16 Then
Print Keycode
Keycode = Keycode + 1
Print Chr(34) ; Mid(asciichars , Keycode , 1) ; Chr(34)
Waitms 200
End If
Loop
End
MID beginnt mit der Zählung bei 1 und nicht bei 0. Deshalb muss man die Rückgabe des Befehls GETKBD zuerst um 1 erhöhen.
Bascom Hilfe zu diesem Befehl: http://avrhelp.mcselec.com/index.html?mid.htm
CHR gibt ein Zeichen zurück, wenn man es mit ASCII-Code füttert. 34 ist der ASCII-Code für das doppelte Anführungszeichen (").
Bascom Hilfe zu diesem Befehl: http://avrhelp.mcselec.com/index.html?chr.htm
Nachdem ich mich dann mal durchgerungen habe, und ne ISP-Wanne auf ne Lochraster gelötet habe, habe ich dann mal großzügig ein ISP-Kabel hergestellt. Das Kabel an sich ist in Ordnung, das habe ich durchgemessen.
Problem: Beim Chip kommt nur Müll an - bzw es wird ebenso nur Müll gelesen von ihm.
Der Quarz funzt offenbar - denn sonst käm ja gar nichts.
Kann es sein, dass das ISP-Kabel in der LÄnge relativ begrenzt ist?
Anmeldungsdatum: 27.07.2007 Beiträge: 925 Wohnort: Oberhofen im Inntal (Tirol)
Verfasst am: Do 03.Apr 2008 13:55:55 Titel:
pcprofi hat folgendes geschrieben:
Kann es sein, dass das ISP-Kabel in der LÄnge relativ begrenzt ist?
Hallo pcprofi!
Meines ist ca. 40 cm lang. Viel länger würde ich es aber nicht mehr machen wollen. Die Daten können mit bis zu einem Viertel des Prozessortaktes durch die Leitungen gejagt werden.
ich habe noch eine Frage zum UART:
Ich haben hier einen Laptop, und der hat keine COM-prots mehr...
ich habe aber einen USB-COM adapter. Kan ich den auch verwenden?
Anmeldungsdatum: 27.07.2007 Beiträge: 925 Wohnort: Oberhofen im Inntal (Tirol)
Verfasst am: Do 03.Apr 2008 15:34:50 Titel:
Bauteiltöter hat folgendes geschrieben:
USB-COM adapter
Hallo Bauteiltöter!
USB-COM-Adapter sollten eigentlich funktionieren. Probier es einfach mal aus. Ich habe zwar mit einem meiner USB-COM-Adapter ein Problem, habe aber noch nicht den Tipp von BellaD ausprobiert. Siehe: http://www.loetstelle.net/forum/viewtopic.php?p=7464#7464
Nur zum Ansteuern von 08/15-Programmern sind sie meistens kaum zu gebrauchen. Man liest immer wieder von Problemen damit. Und wenn ich höre, dass zwar das Flashen angeblich funktioniert hat, aber ein Fehler gemeldet wurde, dann läuft es mir kalt den Buckel runter. Meine Empfehlung als Programmer ist weiterhin: mySmartUSB
Anmeldungsdatum: 03.12.2006 Beiträge: 1195 Wohnort: Klinik der misshandelten Kuscheltiere
Verfasst am: Do 03.Apr 2008 15:41:14 Titel:
Hoi
vielleicht doch noch mal durchmessen - Pin für Pin -
ich hab an meinem Selbstbau Prg. 1 x10pol.Kabel fest angelötet ca.80cm lang und ein 30cm.langes 6pol. auf Wannenstecker und keine Probleme damit.Die Kabel bleiben immer beide drann. Aber das ist auch ein nach der AVR910 gebauter serieller Prgrammer mit nem 2313 und der wird von AVRprog (im AVRStudio enthalten) bedient.
Das Pollinteil kenne ich nicht
Die Nase vom Stecker muss an beiden Seiten in die gleiche Richtung zeigen !
ich versuch es mal in ascii.
x||---------------------x|| (x soll die nase sein ) Kabel ist oben,Stecker zeigen nach unten
Alle Zeiten sind GMT + 1 Stunde Gehe zu Seite Zurück1, 2, 3 ... 6, 7, 8 ... 17, 18, 19Weiter
Seite 7 von 19
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum nicht herunterladen