Hallo WarChild,
Zu 1:
DDRA |= (ADC0 | ADC1); // PA0, PA1 als Ausgänge definieren
PORTA |= ADC0; // PA0 high
PORTA &= ~ADC0; //PA0 low
Zu 2:
Auf dem RP6-Mainboard sind die I2C-Pullups schon drauf (R32/33 4,7kOhm).
Gruß Dirk
Hallo,
bisher hat es mir gereicht mit dem was der RP6 an Bord hat herumzutüfteln, jetzt möchte ich jedoch die beiden freien ADC Ports als Ausgänge nutzen.
1. Welche Befehle benötige ich, um sie als Ausgang zu definieren und um sie mit 1 oder 0 zu belegen?
- Ich bitte darum, alle Befehele mit einer kleinen Erläuterung zu versehen.
2. Ich möchte einen SRF02 an den I²C Bus hängen und im Handbuch meine ich irgendetwas von Pullup Widerständen gelesen zu haben, um immer ein eindeutiges Potential auf der SDA- und SCL- Leitung zu haben.
Letztendlich werden doch einfach nur irgendwo, wo platz ist, ein Widerstand zwischen der SDA-Leitung und VDD und einer zwischen der SCL-Leitung und Vdd eingelötet oder? Wieviel kOhm sind ratsam? 10k oder 47k?
Ich habe das tolle Buch "C von A bis Z" gelesen, aber leider kommen da die Microcontroller bezogenenen Funktionen nicht vor. Gibt es ein gutes Buch über Microcontroller bezogene Programmierung in C?
Vielen Dank im Vorraus!
WarChild
(c) Rechtschreibfehler sind rechtmäßiges Eigentum des Autors (c)
Hallo WarChild,
Zu 1:
DDRA |= (ADC0 | ADC1); // PA0, PA1 als Ausgänge definieren
PORTA |= ADC0; // PA0 high
PORTA &= ~ADC0; //PA0 low
Zu 2:
Auf dem RP6-Mainboard sind die I2C-Pullups schon drauf (R32/33 4,7kOhm).
Gruß Dirk
Danke!!!
mfg WarChild
(c) Rechtschreibfehler sind rechtmäßiges Eigentum des Autors (c)
wie schnell arbeiten die Ultraschall Sensoren ? könnte man diese auf einem Servo einsetzen, welcher sich inner halb von 2sek. hin und zurück dreht? -also die vollen 180° ausnutzt?
Danke
Natürlich kann der SRF02 während der 180° drehung Messwerte aufnehmen, die frage ist nur wieviele.
Prinzipiell wird jedesmal wenn man den SRF02 über I2C anspricht eine Messung ausgeführt.
jedesmal wenn dieser code durchlaufen ist hat man einen Wert:
Also: mann muss zwei Bytes via I2C schreiben, 65ms warten und dann zwei Bytes auslesen. Das darf max. 75ms dauern. Bei 2 sec. Schwenkzeit, also von ganz links nach ganz rechts, sind das 26,66 messwerte, also alle 6,75° ein Messwert.Code:Function Srf02_entfernung(byval Slaveid As Byte) As Integer Local Lob As Byte Local Hib As Byte Local Firmware As Byte Local Temp As Byte Local Slaveid_read As Byte slaveid_read = Slaveid + 1 'Messvorgang in starten I2cstart I2cwbyte Slaveid I2cwbyte 0 I2cwbyte 81 'in Zentimetern messen I2cstop Waitms 65 'minimale Wartezeit für Messung bei SRF02 I2cstart I2cwbyte Slaveid I2cwbyte 2 'Leseregister festlegen
Das ganze ist aber enorm timing abhängig, wenn du damit einen Rundumscann der Umgebung machen willst.
mfg WarChild
(c) Rechtschreibfehler sind rechtmäßiges Eigentum des Autors (c)
Lesezeichen