|
Народ! Подскажите где тупой..
имею в системе упомянутый контроллер и прикрученные к нему внешние регистры в ПЛИС.
понятно что хочется читать писать их как внешнюю память.
пишу в WINAVR и вижу такой глюк или не знаю что.
#include #define HOST_PORT 0xff00 int main(void) sbi(MCUCR,SRE); //Enable external memory а в листинге выходном вижу такую картину sbi(MCUCR,SRE); //Enable external memory for(;;){ и чито все енто значит.. подскажите плз. в какую сторону копать
E-mail:
info@telesys.ru
#include
typedef unsigned char UCHAR;
{
UCHAR *HPortPtr = (UCHAR*)HOST_PORT+0x00; // pointer to base address
char hstatus; //port status
for(;;)
{
hstatus = *(HPortPtr+1);
if(hstatus != 0x01)
*HPortPtr = 0x43;
}
return 0;
}
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
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 подтверждает это..
Ответы