Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Программаторы, прошивка МК » Программирование Меги с FLASH AT45D161 из под BASCOM


Программирование Меги с FLASH AT45D161 из под BASCOM

Сообщений 1 страница 8 из 8

1

Народ! Программировал ли кто нибуть из под BASCOM мегу с FLASH AT45D161 ?
Помогите разобраться...
Может какой нибудь примерчик, интересует запись в нее звука ... Помогите пожалуста..

0

2

Было такое. Только с 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

0

3

еще

Код:
'-------------------------------------------------------------------------------
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

если че не понятно, спрашивайте

0

4

Большое спасибо, буду разбираться.
Поздравляю всех с праздником, желаю всего самого наилучшего!!! :D (много не пейте, мало тоже)

0

5

Ведущийспециалист перепишите пожалуйста коментарии которые выглядят кракозябрами (наверное что-то с кодировкой).

0

6

'подпрограмма чтения страницы памяти
'вход-------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

+1

7

В процедуре чтения страницы из микросхемы есть такая строка

Код:
Buf(temp1) = N

вопрос:
какой тип задать переменной Buf?

и еще вопросик:
какие типы присвоить остальным переменным в коде? )))

0

8

Этот массив на 246 БАЙТ

0


Вы здесь » Программирование ATMEL в BASCOM. » Программаторы, прошивка МК » Программирование Меги с FLASH AT45D161 из под BASCOM