Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: 2.12.06 Bug bei der SD-Karte Kategorie: IDE (von Christian - 26.12.2010 19:13)
Als Antwort auf 2.12.06 Bug bei der SD-Karte von Christian - 26.12.2010 18:54
Ich nutze:
C-Control Pro Mega128
> Hallo,
> ich habe folgendes Problem bei der SD-Karte.
> Wenn ich die C-Control mit dem Powerschalter einschalte oder Reset Taster dr√ľcke,
> dann bekomme ich immer beim √∂ffnen der Datei die R√ľckmeldung "WRITE_PROTECTED"
> und dadruch beim schreiben den Fehler "INVALID_OBJECT".
> Starte ich mein Programm aber jetzt aus der IDE mit dem "Blitz-Button / Programm starten), gibt
> es keine Fehler. Das passiert aber nur, wenn die Datei schon vorhanden.
> Mit der vorgelagerten Funktion SDC_GetFree gibt es aber keine Probleme.
>
> Den SS (Slave-Select) habe ich auf B4 gelegt, da ich später noch ein SPI-Gerät ansteuern möchte.
> nocht nicht eingebunden)
>
>
> Main
> ...
>  SPI_Disable()
>
>  Port_DataDirBit(13,1)   'PortB.5 = 13 als Ausgang = CS - SD Card
>  Port_DataDirBit(14,1)   'PortB.6 = 14 als Ausgang = CS - 2. SPI
>
>  SPI_Init_Byte = 80  '3,6 Mhz
>  SPI_Enable(SPI_Init_Byte)
>
>  Port_WriteBit(13,1)   'PortB.5 = CS - SD Card  - 0 = selected Slave
>  Port_WriteBit(14,1)   'PortB.6 = CS - 2. SPI   - 0 = selected Slave
>
>    Do While True   'Endlosschleife
>
>     If Timer1_cont = 0 Then
>
>         'Timer1_cont wird in der 10ms Interruptrotine herruntergez√§hlt Timer2
>         Timer1_cont = 1000 '1000 * 10 ms  = 10 sek
>
>         'SPI select Slave
>         Port_WriteBit(13,0)   'PortB.5 = CS - SD Card  - 0 = selected Slave
>         Port_WriteBit(14,1)   'PortB.6 = CS - 2.SPI    - 0 = selected Slave
>
>         SD_Karte_schreiben_Vorbereitung()
>
>         If Port_ReadBit(13) <> 0 Then
>             Thread_Delay(1)
>         End If
>
>         SD_Karte_Freigabe = 1
>
>         SD_Karte_Init()
>
>         If SD_Karte_vorhanden = 1 Then
>                SD_Karte_getfree()
>                If SD_Karte_vorhanden = 1 Then
>                     SD_Karte_Schreibvorgang = 1
>                     SD_Karte_Dateiordner_erstellen()
>                     SD_Karte_Datei_oeffnen()
>                     SD_Karte_schreiben()
>                     SD_Karte_FSync()
>                     SD_Karte_schliessen()
>                End If
>         End If
>
>
>         'SPI select Slave
>         Port_WriteBit(13,1)   'PortB.5 = CS - SD Card  - 0 = selected Slave
>         Port_WriteBit(14,1)   'PortB.6 = CS -   2.SPI  - 0 = selected Slave
>
>     End While
>
>
> Gruss Christian

Ich habe nochmal einwenig getestet.

Das Problem tritt auch bei leerer SD-Karte auf. Wenn eine neue Datei erzeugt werden soll.

Gruss Christian


    Antwort schreiben


Antworten: