PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neuling bei Bascom braucht hilfe



sato
22.04.2007, 19:10
Hallo Bacom Experten

Bin Neuling mit Bascom, bisher nur PBP Pro für PIC controllern benutzt
Möchte auch Atmel Controller benutzen und darum habe ich schon einiges über Bascom gelesen doch was mich im Momment am meistens zu schaffen macht ist die vielfalt der instructionen für die serielle Schnitstelle.

In meinen PBP Pro programme benutze ich viel die Serielle Schnitstelle und I2C und möchte mein PBP Pro code auf Atmega 128 portieren.
Hier ein paar Beispiele
Wäre Nett wenn jemand mir dabei helfen kann das zu verstehen

Beispiel:I2C
bei PBP Pro wird in diesen Fall auf label notok im code gesprungen fals beim lesen von den externen eeprom das ack oder nack nicht ausgewertet wird
I2Cread dados,clock,$A0,$4B0B,[celcius,maxload],notok
notok:
mache irgend etwas
Bascom????

Beipiel:I2C
daten in ein 15 byte Array einlesen, hier wird auch auf notok im code gesprungen fals beim lesen von den externen eeprom das ack oder nack nicht ausgewertet wird
I2Cread dados,clock,$A0,$4B49,[STR fabrico\15],notok
Bascom??

Beipiel: Softuart
Daten in ein 15 byte Array von der softuart einlesen mit timeout von 10 sekunden, springt zu label notreceibe fals während der 10 sekunden das kennwort "id" nicht ankommt
SERIN2 pte,bmode,10000,notreceibe,[wait ("id"),STR id\15]
Bascom??

Beipiel: Softuart
Wie oben, hier wird auf das Zeichen "C" gewartet und wenn empfangen wird werden die danach folgenden Werte als decimal und als hexadecimal in den esp0 und esp1 variabeln gespeichert
SERIN2 pte,bmode,10000,notreceibe,[wait ("C"),dec2 esp0,hex2 esp1]
Bascom???

Bedanke mich in voraus

Mfg

Sato

darwin.nuernberg
22.04.2007, 19:32
Zu I2C gibt es schon diverse Samples (Beispiele)
' file: I2C.BAS
' demo: I2CSEND and I2CRECEIVE

oder in der Hilfe
I2CSEND , I2CRECEIVE , I2CSTART , I2CSTOP, I2CRBYTE , I2CWBYTE, CONFIG SDA ,CONFIG SCL , CONFIG I2CDELAY


Hier ein Demo um 15 Bytes in ein Array zu lesen


$regfile = "m32def.dat" ' the used chip
$crystal = 8000000
$baud = 19200
' baud rate
Config Sda = Portb.5
Config Scl = Portb.7
Const Slave = &H120
Dim Buf(15) As Byte

I2creceive Slave , Buf(1) , 0 , 15 'send 0 bytes and receive 15 byte


End


Wenn Du vorher einige Bytes an den Slave senden willst /z.B. 2 Bytes da musst du in das Array zunächst die zu sendenden Werte schreiben, den Befehl ändern "I2creceive Slave , Buf(1) , 2 , 15"
Das Array wird dann mit den empfangen Werten überschrieben.