Spiout- Fehler bei Bascom

OP #345717
Lesenswert?

m454fjjuHallo,

ich habe eine merkwürdiges Problem. Mein programm schickt mehrere Bytes
über den SPI- Bus zu einem Funkmodul. Jedoch sendet Bascom das zweite
Byte nie richtig aus. Anstatt der 8 kommt immer nur eine 0. Alle
anderen Bytewerte stimmen (würde auf dem Oszi geprüft).
Der Teil meines Codes:

A(1) = &H66
Spiout A(1) , 1
Waitus 20

A(1) = &H08
Spiout A(1) , 1   ------------ dieses Byte wird nie richtig gesendet
Waitus 20

A(1) = &H00
Spiout A(1) , 1
Waitus 20

Der MCU ist dabei Master und springt nie in den Slavebetrieb. Der Takt
ist zu sehen, nur der Bytewert stimmt nicht überein. Hat jemand eine
Ahnung woran das liegen könnte?
Zudem hört Bascom einfach nach einer Weile mit dem SPI-Bus auf zu
senden. Also eine dauerhaften senden ist auch nicht möglich.

Danke schon mal für die Antwort
mfg
Alex
Gast #345719
Lesenswert?

Hi,
mmm.  Seltsam. SPI funktioniert eigentlich recht gut mit Bascom.

Ist Variable A auch als Byte definiert?

Was passiert denn bei :

Spiout &H66 , 1
Waitus 20
Spiout &H08 , 1
Waitus 20
Spiout &H00 , 1
Waitus 20

oder bei
A(1)=&H66
A(2)=&H08
A(3)=&H00
Spiout A(1) , 3

Alternativ mal den Befehl Shiftout versuchen.

Gruß
PeterK
www.display3000.com
Gast #345720
Lesenswert?

Hi,
was für ein Funkmodul benutzt du denn?

mit einem CC1100 von chipcon und einem mega8 geht das z.b. sehr einfach
so...

'init
Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = Yes ,
Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 1

Config Portb.2 = Output 'port für CS = chip select pin
Csn Alias Portb.2       'CSN is SPI enable pin
Enable Interrupts

Spiinit                 'inits the SPI interface
Set Csn                 'set CSN high as soon as possible
.
.
.
.
Reset Csn
Waitus 1
Spiout Spi_instr , Spi_bytes
Waitus 1
Set Csn
Waitus 1
.
.
.

fertig

cu

chris

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren