SPI Mega8 funktioniert nur sporadisch?

Gast #2875637
Lesenswert?
• ▲
▼
Hallo,

ich hoffe es kann mir jemand weiterhelfen.
Ich möchte per HW-ISP Daten an einen anderen µC senden.
Der folgende Quellcode funktioniert nur spontan, d.h. nicht jedes Mal
wenn ich den Taster betätige werden die Daten gesandt sondern nur ab und 
zu. Woran kann das liegen?

Schonmal vielen Dank im Voraus, dani


$regfile = "m8def.dat"
$crystal = 4915000

$hwstack = 40
$swstack = 32
$framesize = 400

Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , 
Polarity = Low , Phase = 0 , Noss = 1 , Clockrate = 128

Spiinit

Config Portb.0 = Input : Taster Alias Pinb.0                'Taster

'*********************************************************************** 
*
Do
   If Taster = 0 Then
       Spdr = &H5F
       waitms 100
       Do : Loop Until Taster = 1
   End If

Loop
'*********************************************************************** 
**
End
Gast #2875691
Lesenswert?
• ▲
▼
Ich denke nicht das es am Taster liegt, ich habe diesen mit 100nF 
entprellt und lt. Oszi gibt es nur einen sauberen Schaltimpuls.
Aber um diesen Fehler ganz auszuschließem habe ich den Taster jetzt 
weggelassen und sende die Daten in einer Schleife alle 1s.
Aber auch hier funktioniert es nur sporadisch. Was auffällt, beim 
anlegen der Versorgungsspannung funktioniert es reproduzierbar immer 1x.
Ich denke ich muss irgend ein Register wieder zurücksetzen, habe aber 
außer "spif" noch nichts gefunden was noch damit zu tun haben könnte.



'Ausgänge
Config Portc.5 = Output : Led Alias Portc.5                 'LED

'********************************************************************
Do

   Led = 1
   Spdr = &H5F
   Wait 1
   Led = 0
   Wait 1

Loop
'*******************************************************************
End
Gast #2876705
Lesenswert?
• ▲
▼
Hi

>Der SS Eingang muss mit einem PullUp Wiederstand nach VCC gezogen werden
>um einen definierten Highpegel zu gewährleisten. Liegt an SS Low an,
>schaltet ISP in den Slavemode zurück.

Ausgang hätte auch gereicht.

MfG Spess

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.