Народ! Программировал ли кто нибуть из под BASCOM мегу с FLASH AT45D161 ?
Помогите разобраться...
Может какой нибудь примерчик, интересует запись в нее звука ... Помогите пожалуста..
Программирование Меги с FLASH AT45D161 из под BASCOM
Сообщений 1 страница 8 из 8
Поделиться12008-02-21 22:55:12
Поделиться22008-02-23 16:16:29
Было такое. Только с 41ой, но по сути дела это тоже самое.
Микра хороша, но слишком принципиальная с командами.Код у меня написан в библиотеках.
'------------------------------------------------------------------------------- Sub Page_read(byval Page_mem As Word) '-------------Flash read subroutine--------------------------------------------- 'Ïîäïðîãðàììà ÷òåíèÿ çàäàííîé ñòðàíèöû ïàìÿòè 'Âõîä-------page_Mem (0-2047) 'Âûõîä------buf(264) ìàññèâ 264 áàéòà Reset Select_memory 'select flash ram N = Current_page_read 'command Current_page_read Call Byteout() 'out 3 bytes of adress Shift Page_mem , Left , 1 A = Page_mem Call Wordout() N = 0 Call Byteout() '------------- Call Byteout() Call Byteout() Call Byteout() Call Byteout() 'ïåðåäàëè 32 dont care bits For Temp1 = 1 To 264 Call Bytein() Buf(temp1) = N Next Temp1 Set Select_memory End Sub Sub Bytein() ldi r23,0 !Out Spdr , R23 Wairh: sbis spsr, spif rjmp wairh in r23,spdr sts {n},r23 End Sub Sub Buffer1_to_flash(byval Page_mem As Word) '-------------Flash write subroutine--------------------------------------------- 'Ïîäïðîãðàììà çàïèñè áóôåðà 1 â ñòðàíèöó ïàìÿòè 'Âõîä-------page_Mem (0-2047) Reset Select_memory N = Buff1_mem_write ' command write buffer to flash Call Byteout() Shift Page_mem , Left , 1 A = Page_mem Call Wordout() N = 0 Call Byteout() Set Select_memory 'deselect memory Waitms 30 End Sub Sub Buffer1_write Reset Select_memory N = Buff1_write ' command write in buffer Call Byteout() N = &H00 ' Call Byteout() N = &H00 ' Call Byteout() N = &H00 ' Call Byteout() 'Set Select_memory End Sub Sub Page_write(page_mem As Word) Reset Select_memory N = Current_page_write ' command write buffer to flash Call Byteout() Shift Page_mem , Left , 1 A = Page_mem Call Wordout() N = 0 Call Byteout() ' 'deselect memory 'Waitms 30 End Sub
Поделиться32008-02-23 16:21:09
еще
'------------------------------------------------------------------------------- Sub Page_read(byval Page_mem As Word) '-------------Flash read subroutine--------------------------------------------- 'Ïîäïðîãðàììà ÷òåíèÿ çàäàííîé ñòðàíèöû ïàìÿòè 'Âõîä-------page_Mem (0-2047) 'Âûõîä------buf(264) ìàññèâ 264 áàéòà Reset Select_memory 'select flash ram N = Current_page_read 'command Current_page_read Call Byteout() 'out 3 bytes of adress Shift Page_mem , Left , 1 A = Page_mem Call Wordout() N = 0 Call Byteout() '------------- Call Byteout() Call Byteout() Call Byteout() Call Byteout() 'ïåðåäàëè 32 dont care bits For Temp1 = 1 To 264 Call Bytein() Buf(temp1) = N Next Temp1 Set Select_memory End Sub Sub Bytein() ldi r23,0 !Out Spdr , R23 Wairh: sbis spsr, spif rjmp wairh in r23,spdr sts {n},r23 End Sub
и вот
'--------Ïîäïðîãðàììà äëÿ ïåðåäà÷è ïàðàìåòðà èëè òî÷êè â äèñïëåé---------------- Sub Wordout lds r23, {a+1} !out spdr, r23 lds r23, {a} Wait_trh: sbis spsr, spif rjmp wait_trh !out spdr, r23 Wait_trl: sbis spsr, spif rjmp wait_trl End Sub '-------------Ïîäïðîãðàììà äëÿ ïîñûëêè êîìàíäû äèñïëåþ-------------------------- Sub Byteout lds r23, {n} !out spdr, r23 Waitresult: sbis spsr, spif rjmp waitresult End Sub
если че не понятно, спрашивайте
Поделиться42008-02-23 20:09:18
Большое спасибо, буду разбираться.
Поздравляю всех с праздником, желаю всего самого наилучшего!!! (много не пейте, мало тоже)
Поделиться52008-03-06 19:43:15
Ведущийспециалист перепишите пожалуйста коментарии которые выглядят кракозябрами (наверное что-то с кодировкой).
Поделиться62008-03-07 19:58:22
'подпрограмма чтения страницы памяти
'вход-------page_Mem (0-2047)
'выход------buf(264) буфер 264 байта
Reset Select_memory 'select flash ram
N = Current_page_read 'command Current_page_read
Call Byteout() 'out 3 bytes of adress
Shift Page_mem , Left , 1
A = Page_mem
Call Wordout()
N = 0
Call Byteout()
'-------------
Call Byteout()
Call Byteout()
Call Byteout()
Call Byteout()
'передаём 32 dont care bits
For Temp1 = 1 To 264
Call Bytein()
Buf(temp1) = N
Next Temp1
Set Select_memory
End Sub
Sub Bytein()
ldi r23,0
!Out Spdr , R23
Wairh:
sbis spsr, spif
rjmp wairh
in r23,spdr
sts {n},r23
End Sub
Поделиться72008-03-11 12:57:04
В процедуре чтения страницы из микросхемы есть такая строка
Buf(temp1) = N
вопрос:
какой тип задать переменной Buf?
и еще вопросик:
какие типы присвоить остальным переменным в коде? )))
Поделиться82008-03-15 14:42:04
Этот массив на 246 БАЙТ