90s8515+external SRAM
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено lutik 10 декабря 2004 г. 11:59

Народ! Подскажите где тупой..

имею в системе упомянутый контроллер и прикрученные к нему внешние регистры в ПЛИС.
понятно что хочется читать писать их как внешнюю память.
пишу в WINAVR и вижу такой глюк или не знаю что.

#include
#include

#define HOST_PORT 0xff00
typedef unsigned char UCHAR;

int main(void)
{
UCHAR *HPortPtr = (UCHAR*)HOST_PORT+0x00; // pointer to base address
char hstatus; //port status

sbi(MCUCR,SRE); //Enable external memory
for(;;)
{
hstatus = *(HPortPtr+1);
if(hstatus != 0x01)
*HPortPtr = 0x43;
}
return 0;
}

а в листинге выходном вижу такую картину

sbi(MCUCR,SRE); //Enable external memory
5a: 85 b7 in r24, 0x35 ; 53
5c: 80 68 ori r24, 0x80 ; 128
5e: 85 bf out 0x35, r24 ; 53
60: 80 91 01 ff lds r24, 0xFF01
64: 93 e4 ldi r25, 0x43 ; 67

for(;;){
hstatus = *(HPortPtr+1);
if(hstatus != 0x01)
66: 81 30 cpi r24, 0x01 ; 1
68: f1 f3 breq .-4 ; 0x66
*HPortPtr = 0x43;
6a: 90 93 00 ff sts 0xFF00, r25
6e: fb cf rjmp .-10 ; 0x66

и чито все енто значит..
я просил в вечном цикле читать состояние и если взведен бит - писать данные, а судя по листингу..
он один раз прочитает состояние и потом вечно пишет или не пишет данные.
debug в AVRStudio подтверждает это..

подскажите плз. в какую сторону копать

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

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru