[an error occurred while processing this directive]
Помогите разобраться, не пишется РМ на меге8
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено benz 10 мая 2006 г. 12:32

Цель - просто разобраться. Нужно записать любой байт в свободное место РМ. В студии все работает. Асм компилится правильный. На меге8 ничего не происходит. Шью тем же СV, фьюзы вроде правильные, lpm работает. И чего не хватает?
//СV1.24.3(или 2) точно не помню. Собственно смотрел асм Все правильно.

#define TestBit(p,n) (p & Bit(n))

#pragma warn-
void WritePM(int Adr,int Data)
{
#asm
;загрузка буфера
ldd r30,y+2 ;R30=LSB Adr ;заносим в Z = 2*(адрес для записи)
ldd r31,y+3 ;R31=MSB Adr
ldd r26,y+0 ;R26=LSB Data ;чего пишем
ldd r27,y+1 ;R27=MSB Data
mov r0,r26
mov r1,r27
cli
#endasm
//запись данных во временный буфер 64 байта
SPMCR = 0x1;
#asm ("spm");
while(TestBit(SPMCR,0));
//стирание страницы из 64 байт
SPMCR=3;
#asm ("spm");
while(TestBit(SPMCR,0));
//запись
SPMCR=5;
#asm ("spm");
while(TestBit(SPMCR,0));
#asm ("sei");
}
#pragma warn+

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru