Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Кто ж в него просто пишет то? А где проверка на занятость, запрет прерывание на конец?
; Оформи это в качестве подпрограммы и по-другому не записывай
; в SPMCR. Или переведи на язык С однозначно.
; В r16 - переменная, что писать в SPMCR
Write_SPM:
Wait_SPM: ; Cначало ожидание свободы SPMCR
ldi r17,SPMCR
sbrc r17,SPMEN
rjmp Wait_SPM
; Запрет прерываний
in r17, SREG
cli
; убедицца в отсуцтвии записи eeprom
Wair_EE:
sbic EECR,EEWE
rjmp Wait_EE
; воттеперь запись
sts SPMCR, r16
spm
out SREG,r17 ; восстановление прерываний
ret
;;;;;;;;;;;;;;;;;;;;
Вызов
...........
ldi r16, NN ; NN это например твой ((1 << SPMEN)|(1 << RWWSRE))
call Write_SPM
...........
Составить ответ | Вернуться на конференцию
Ответы