Hallo zusammen steige zur zeit von Bascom auf den gcc compilier um. Da ich den SRF02 (Ultraschall Sensor) ansprechen möchte, es aber nur Code für Bascom gibt habe ich versucht die funktion in C zu schreiben. Und wollte euch fragen ob das so richtig ist. Als software uart wurde das hier http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=133&item_type=project benutzt. Hier das portierte:
1 | int messung( char ID) { |
2 | unsigned char highbyte, lowbyte; |
3 | |
4 | // ID + Befehl zum messen senden
|
5 | sputchar( ID ); |
6 | sputchar( 84 ); |
7 | |
8 | // Antwort
|
9 | while( !kbhit() ); |
10 | highbyte = sgetchar(); |
11 | while( !kbhit() ); |
12 | lowbyte = sgetchar(); |
13 | |
14 | return ( (highbyte << 8) | lowbyte ); |
15 | }
|
Hier den Bascom code:
1 | Function Srf02_entfernung(byval Slaveid As Byte) As Integer |
2 | |
3 | Local Lob As Byte |
4 | |
5 | Local Hib As Byte |
6 | |
7 | |
8 | |
9 | Print #1 , Chr(slaveid) ; Chr(84); 'Messvorgang in cm starten |
10 | |
11 | Inputbin #2 , Hib , Lob 'Warte auf Ergebnis |
12 | |
13 | Srf02_entfernung = Makeint(lob , Hib) |
14 | |
15 | End Function |
Grüße drakesoft