Witam
Napisałem mały programik w celu zrozumienia obsługi karty sd.
Program powstał z kilku innych programów które znalazłem w sieci i posklejałem w całość.
Założenia są takie ze odczytywana jest wartość temperatury z czujnika ds18b20 i zapisywana jest na karcie sd.
karta posiada system plików fat16 , stworzyłem plik temper.txt na karcie ale nic w nim nie jest zapisywane
Dziękuje
poniżej kod programu
Napisałem mały programik w celu zrozumienia obsługi karty sd.
Program powstał z kilku innych programów które znalazłem w sieci i posklejałem w całość.
Założenia są takie ze odczytywana jest wartość temperatury z czujnika ds18b20 i zapisywana jest na karcie sd.
karta posiada system plików fat16 , stworzyłem plik temper.txt na karcie ale nic w nim nie jest zapisywane
Dziękuje
poniżej kod programu
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 128
$swstack = 128
$framesize = 128
$baud = 19200
$include "Config_MMC.bas"
$include "Config_AVR-DOS.BAS"
Config 1wire = Portd.7
Dim Dsid(8) As Byte
Dim T1 As String * 6
Config Portc.0 = Output : Reset Portc.0
Config Portc.1 = Output : Reset Portc.1
Led Alias Portc.0
Led2 Alias Portc.1
Declare Sub Ds_read
Declare Sub Write_to_sd()
Do
Call Ds_read
Waitms 500
Call Write_to_sd()
Wait 10
Loop
Sub Write_to_sd
Local Errorcode As Byte
Gbdriveerror = Driveinit()
If Gbdriveerror = 0 Then
Errorcode = Initfilesystem(1)
If Errorcode <> 0 Then
Set Led
Else
Open "temper.txt" For Append As #1
Write #1 , T1
Flush #1
Close #1
Set Led
End If
Else
Reset Led
End If
End Sub
Sub Ds_read
Set Led2
Local T_ds As Integer
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 800
1wreset
1wwrite &H55
1wverify Dsid(1)
1wwrite &HBE
T_ds = 1wread(2)
T_ds = T_ds * 10
T_ds = T_ds / 16
T1 = Str(t_ds)
T1 = Format(t1 , "0.0")
Reset Led2
End Sub