projects:4e4th:4e4th:start:msp430g2553_experimente:input
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
projects:4e4th:4e4th:start:msp430g2553_experimente:input [2014-08-20 14:20] – [Taster abfragen] mka | projects:4e4th:4e4th:start:msp430g2553_experimente:input [2016-02-04 00:06] (aktuell) – [Elektretmikrofon] mka | ||
---|---|---|---|
Zeile 27: | Zeile 27: | ||
P1.3 --- S2 --- GND | P1.3 --- S2 --- GND | ||
- | Dazu wird der Portpin als digitaler Eingang geschaltet. Im Beispiel ist Pin3 von Port1 der MCU MSP430G2553 auf dem LaunchPad über den Taster S2 direkt mit Masse (GND) verbunden. Das geht ohne weiteres. Ein [[http:// | + | Dazu wird der Portpin als digitaler Eingang geschaltet. Im Beispiel ist Pin3 von Port1 der MCU MSP430G2553 auf dem LaunchPad über den Taster S2 direkt mit Masse (GND) verbunden. Das geht ohne weiteres. Ein [[http:// |
S2 P1.3 | S2 P1.3 | ||
Zeile 62: | Zeile 62: | ||
| | ||
BIN | BIN | ||
- | : SETLEDS | + | : SETLEDS |
>r \ Als lokale variable sichern. | >r \ Als lokale variable sichern. | ||
r@ 00000001 and IF green cset ELSE green cclr THEN \ Bit0 auswerten. | r@ 00000001 and IF green cset ELSE green cclr THEN \ Bit0 auswerten. | ||
Zeile 91: | Zeile 91: | ||
Man kann den Pegel an P2.3 zusätzlich mit dem Oszilloskop, | Man kann den Pegel an P2.3 zusätzlich mit dem Oszilloskop, | ||
- | * Spannung an P2.3 wechselt | + | * Spannung an P2.3 variiert |
* P2.3in schaltet zwischen H (high) und L (low) um. | * P2.3in schaltet zwischen H (high) und L (low) um. | ||
* Bei MIN wird der Eingang L und bei MAX wird er H. | * Bei MIN wird der Eingang L und bei MAX wird er H. | ||
Zeile 98: | Zeile 98: | ||
* Diese Werte liegen im Bereich der Angaben im Datenblatt. | * Diese Werte liegen im Bereich der Angaben im Datenblatt. | ||
- | Das Ganze geht natürlich auch mit winzigen Kapazitäten und hohen Widerständen. Oder mit Kapazitätsänderungen von Folien, Oberflächen usw. | + | Das Ganze geht natürlich auch mit winzigen Kapazitäten und hohen Widerständen. Oder mit Kapazitätsänderungen von Folien, Oberflächen usw. Dieses Verhalten lässt sich dann z.B. dazu benutzen einen {{: |
Zeile 229: | Zeile 229: | ||
===== ledcomm beobachten ===== | ===== ledcomm beobachten ===== | ||
- | Will man prüfen und nachmessen wie die LEDCOMM-Verbindung arbeitet, ist etwas mehr Aufwanf nötig. Denn die Kapazität an so einer LED so winzig, das schon die Messleitung zum Oszilloskop deren Wert so verändert, dass die Schaltung nicht mehr funktioniert. Die Beobachtung muss also ebenfalls optisch erfolgen, ohne einen elektrischen Kontakt. Mit dem {{: | + | Will man prüfen und nachmessen wie die LEDCOMM-Verbindung arbeitet, ist etwas mehr Aufwanf nötig. Denn die Kapazität an so einer LED ist so winzig, das schon die Messleitung zum Oszilloskop deren Wert so verändert, dass die Schaltung nicht mehr funktioniert. Die Beobachtung muss also ebenfalls optisch erfolgen, ohne einen elektrischen Kontakt. Mit dem {{: |
{{: | {{: | ||
Zeile 295: | Zeile 295: | ||
- | ==== Spannung zwischen drei Widerständen ablesen | + | ==== Ohmsche Widerstände |
Das Bild ändert sich wenn man einen Spannungsteiler anschließt. Der ADC-Wert stellt sich auf den Wert am Spannungsteiler ein, und die Schwankungsbreite der Werte wurde etwas geringer. Ein Tantal-Kondensator zwischen dem Eingang und Vss ([[http:// | Das Bild ändert sich wenn man einen Spannungsteiler anschließt. Der ADC-Wert stellt sich auf den Wert am Spannungsteiler ein, und die Schwankungsbreite der Werte wurde etwas geringer. Ein Tantal-Kondensator zwischen dem Eingang und Vss ([[http:// | ||
Zeile 330: | Zeile 330: | ||
- | ==== Spannungsteiler aus ohmschem- und Fotowiderstand ==== | + | ==== Fotowiderstand ==== |
Aus dem vorherigen Versuch lässt sich leicht ein Weiterer machen, mit dem ein [[http:// | Aus dem vorherigen Versuch lässt sich leicht ein Weiterer machen, mit dem ein [[http:// | ||
Zeile 343: | Zeile 343: | ||
{{: | {{: | ||
+ | ==== Elektretmikrofon ==== | ||
+ | Ersetzt man den Fotowiederstand durch eine [[https:// | ||
+ | Die Abfrage des ADC10-Eingangs kann mit Forth einfach durchgeführt werden. Das kleine Testprogramm registriert den Spannungspegel als ganzzahligen Wert. Minimum und Maximum werden gespeichert. So kann die Amplitude, die eine Schallwelle am Spannungsteiler auslöst, ermittelt werden. Der verwendete Mikroprozessor wäre schnell genug die Schallwelle feiner abzutasten, hat aber nicht genug RAM um die Werte alle zu speichern. Hier ging es ja auch nur um das Prinzip, und das kann man schon erkennen wenn die Extremwerte registriert werden. | ||
+ | Im Beispiel " | ||
+ | test3 | ||
+ | 81 435 981 900 ok | ||
+ | Die Pegel lagen zwischen 81 und 981 was eine Differenz von 900 ergibt, der Messbereich war 0...1024. Es lässt sich also ein sehr deutliches großes Signal einfach finden. (Die Mikrofonkapsel war recht unempfindlich, | ||
+ | |||
+ | {{: | ||
+ | {{: | ||
+ | |||
+ | \ mikrofon test 4e4th | ||
+ | | ||
+ | \ ADC input Versuche | ||
+ | | ||
+ | hex | ||
+ | 01B0 CONSTANT ADC10CTL0 | ||
+ | 01B2 CONSTANT ADC10CTL1 | ||
+ | 01B4 CONSTANT ADC10MEM | ||
+ | 004A CONSTANT ADC10AE0 | ||
+ | | ||
+ | 0020 constant p1in | ||
+ | 0021 constant p1out | ||
+ | 0022 constant p1dir | ||
+ | 0027 constant p1ren | ||
+ | | ||
+ | bin | ||
+ | \ FEDCBA9876543210 | ||
+ | \ | ||
+ | \ 1 ADC10SHT_2 | ||
+ | \ 1 REF2_5V | ||
+ | \ | ||
+ | \ 1 ADC10ON | ||
+ | 0011000001110000 | ||
+ | | ||
+ | 0000000000000010 | ||
+ | 0000000000000001 | ||
+ | 0000000000000100 | ||
+ | 0100000000000000 | ||
+ | 00000001 CONSTANT BIT0 | ||
+ | 00000010 CONSTANT BIT1 | ||
+ | 00000100 CONSTANT BIT2 | ||
+ | 00001000 CONSTANT BIT3 | ||
+ | 00010000 CONSTANT BIT4 | ||
+ | 00100000 CONSTANT BIT5 | ||
+ | 01000000 CONSTANT BIT6 | ||
+ | 10000000 CONSTANT BIT7 | ||
+ | | ||
+ | : ADC-INIT | ||
+ | adcsetup ADC10CTL0 ! | ||
+ | inch4 ADC10CTL1 ! \ input channel 4 | ||
+ | bit4 ADC10AE0 | ||
+ | : ADC+ 1 ADC10CTL0 cset ; \ Start ADC10 | ||
+ | : ADC- 1 ADC10CTL0 cclr ; \ STOP ADC10 | ||
+ | : ADC \ -- adcmem | ||
+ | ENC ADC10SC + ADC10CTL0 cset | ||
+ | BEGIN ADC10IFG ADC10CTL0 cget UNTIL adc10mem ; | ||
+ | | ||
+ | hex variable MINIMUM | ||
+ | | ||
+ | : INIT | ||
+ | bit4 p1dir cclr \ P1.4 is input | ||
+ | bit4 p1ren cclr \ resistor disable | ||
+ | bit4 p1out cset | ||
+ | adc- adc-init adc+ | ||
+ | FFFF minimum ! 0 maximum ! ; | ||
+ | | ||
+ | decimal | ||
+ | : range ( n -- ) | ||
+ | dup minimum @ umin minimum ! | ||
+ | maximum @ umax maximum ! ; | ||
+ | | ||
+ | : .adc | ||
+ | minimum @ u. | ||
+ | adc @ dup u. range | ||
+ | maximum @ u. | ||
+ | maximum @ minimum @ - u. ; | ||
+ | | ||
+ | : TEST init page BEGIN 1000 ms page .adc key? UNTIL ; | ||
+ | : TEST2 init page BEGIN page .adc key? UNTIL ; | ||
+ | : TEST3 init begin adc @ range key? until cr .adc ; | ||
+ | | ||
+ | : .DATA init 50 0 DO cr adc @ u. LOOP ; | ||
+ | : .DATA2 | ||
+ | | ||
+ | ( finis ) |
projects/4e4th/4e4th/start/msp430g2553_experimente/input.1408537218.txt.gz · Zuletzt geändert: 2014-08-20 14:20 von mka