www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Spiout- Fehler bei Bascom


Autor: Alex F. (alex86)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm. Ich weiß jetzt nicht, was genau diese Spiout Funktion nun macht,
aber eventuell hilfts ja, einfach mal ein paar ms Pause (testweise)
Nach jedem Byte einzufügen?

Kenne mich mit BASCOM leider nicht aus.

Autor: PeterK (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.