سلام.
من دارم روی پروژه کار می کنم که داده های رو روی آیسی فلش بنویسم و بخونم.حالا مشکل اینجاست بار اول وقتی روی آیسی می نویسم و می خونم ،ذاده ها درست نوشته میشه ولی داده جدید می نویسم و وقتی می خونم داده اشتباه نشون می ده و حتما باید آیسی پاک بشه و دوباره داده جدید نوشته بشه .
حالا سوال من این که آیا همیشه برای نوشتن داده جدید، باید آیسی پاک بشه. :surprised:
اینم برنامه که نوشتم
[code=vb]
[/code]
من دارم روی پروژه کار می کنم که داده های رو روی آیسی فلش بنویسم و بخونم.حالا مشکل اینجاست بار اول وقتی روی آیسی می نویسم و می خونم ،ذاده ها درست نوشته میشه ولی داده جدید می نویسم و وقتی می خونم داده اشتباه نشون می ده و حتما باید آیسی پاک بشه و دوباره داده جدید نوشته بشه .
حالا سوال من این که آیا همیشه برای نوشتن داده جدید، باید آیسی پاک بشه. :surprised:
اینم برنامه که نوشتم
[code=vb]
کد:
$regfile = "m32def.dat"
$crystal = 8000000
$hwstack = 100 ' default use 32 for the hardware stack
$swstack = 100 ' default use 10 for the SW stack
$framesize = 200
' $baud = 9600
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Cursor Off
Cls
Config Portb.4 = Output
Config Pinb.0 = Input
Ddrb.0 = 0 : Portb.0 = 1
Ss Alias Portb.4
Dim Data_(6) As Byte , B As Byte , C As Byte , H As Byte , Dd(8) As Byte , S As Byte
Ss = 1
Spiinit
'###########ENABLE WRITE#############
Data_(1) = &H06
Ss = 0
Spiout Data_(1) , 1
Ss = 1
'##################### ################
'############Ereas chip#################
If Pinb.0 = 0 Then
Data_(1) = &H60
Ss = 0
Spiout Data_(1) , 1
Ss = 1
End If
'######################################
Locate 1 , 1
Lcd "WRITING ... "
Gosub Send
Waitms 2000
Cls
Do
'Print Data_(5)
Gosub Receive
For H = 1 To 8
Locate 1 , 1
Lcd "READING "
Locate 2 , 1
Lcd "BYTE(" ; H ; ")=" ; Dd(h) ; " "
Waitms 500
Next
Loop
End 'end program
Send:
' For H = 0 To 7
Data_(1) = 2 'mode write
Data_(2) = 0 'address 2
Data_(3) = 0 'address 1
Data_(4) = 100 'address 0
Data_(5) = 10 + S 'data
Ss = 0
For C = 1 To 5
Spiout Data_(c) , 1
Next
Data_(5) = 20
Spiout Data_(5) , 1
Data_(5) = 30
Spiout Data_(5) , 1
Data_(5) = 40
Spiout Data_(5) , 1
Data_(5) = 50
Spiout Data_(5) , 1
Data_(5) = 60
Spiout Data_(5) , 1
Data_(5) = 70
Spiout Data_(5) , 1
Data_(5) = 80
Spiout Data_(5) , 1
Ss = 1
'Next
Return
Receive:
Ss = 0
Data_(1) = 3 'mode Read
Data_(2) = 0 'address 2
Data_(3) = 0 'address 1
Data_(4) = 100 'address 0
For C = 1 To 4
Spiout Data_(c) , 1
Next
Spiin Dd(1) , 1
Spiin Dd(2) , 1
Spiin Dd(3) , 1
Spiin Dd(4) , 1
Spiin Dd(5) , 1
Spiin Dd(6) , 1
Spiin Dd(7) , 1
Spiin Dd(8) , 1
Ss = 1
Return
D:
Data 50 , 60 , 70 , 80 , 90 , 100 , 110 , 120

