سلام.
من دارم روی پروژه کار می کنم که داده های رو روی آیسی فلش بنویسم و بخونم.حالا مشکل اینجاست بار اول وقتی روی آیسی می نویسم و می خونم ،ذاده ها درست نوشته میشه ولی داده جدید می نویسم و وقتی می خونم داده اشتباه نشون می ده و حتما باید آیسی پاک بشه و دوباره داده جدید نوشته بشه .
حالا سوال من این که آیا همیشه برای نوشتن داده جدید، باید آیسی پاک بشه. :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