Странное поведение "Кайла" для 51-х типа 8:15 Пользовал до событий типа 8:09, работало.
Скачал демо 8:15, поставил. Скушал лекарство под торговой маркой "EDGE".
Вроде подлечился. Тут просят константу одну поправить. Ну поменял, прошился,
не пашет, да и WDT (внешний) все время срабатывает. Стал разбираться и нашел такую вот глюковину.
Короче, порты в xdata в итоге снесены на адрес 0x0000. Интересно, это особенности применения лекарств,
или "по жизни так"?
Собственно исходный текст:
xdata volatile unsigned char WR_0 _at_ 0x8000; // порт вывода DD4 xdata volatile unsigned char WR_1 _at_ 0x8200; // порт вывода DD19 xdata volatile unsigned char WR_2 _at_ 0x8400; // порт вывода DD14 xdata volatile unsigned char WR_3 _at_ 0x8600; // порт вывода DD17 #pragma disable void Out_Xport() { WR_0 = pWR0; WR_1 = pWR1; WR_2 = pWR2; WR_3 = pWR3; } Выдержка из листинга: ; FUNCTION Out_Xport (BEGIN) SETB C R JBC EA,?C0030 CLR C ?C0030: PUSH PSW ; SOURCE LINE # 72 ; SOURCE LINE # 73 ; SOURCE LINE # 74 MOV DPTR,#WR_0 R MOV A,pWR0 MOVX @DPTR,A ; SOURCE LINE # 75 MOV DPTR,#WR_1 R MOV A,pWR1 MOVX @DPTR,A ; SOURCE LINE # 76 MOV DPTR,#WR_2 R MOV A,pWR2 MOVX @DPTR,A ; SOURCE LINE # 77 MOV DPTR,#WR_3 R MOV A,pWR3 MOVX @DPTR,A ; SOURCE LINE # 78 POP PSW MOV EA,C RET ; FUNCTION Out_Xport (END) Кусок из родного "Disassembly window", вместо переменных WR_ забиты #C_STARTUP(0x0000): C:0x0187 10AF01 JBC EA(0xA8.7),C:018B C:0x018A C3 CLR C C:0x018B C0D0 PUSH PSW(0xD0) 72: void Out_Xport() 73: { 74: WR_0 = pWR0; C:0x018D 900000 MOV DPTR,#C_STARTUP(0x0000) C:0x0190 E522 MOV A,pWR0(0x22) C:0x0192 F0 MOVX @DPTR,A 75: WR_1 = pWR1; C:0x0193 900000 MOV DPTR,#C_STARTUP(0x0000) C:0x0196 E520 MOV A,pWR1(0x20) C:0x0198 F0 MOVX @DPTR,A 76: WR_2 = pWR2; C:0x0199 900000 MOV DPTR,#C_STARTUP(0x0000) C:0x019C E521 MOV A,pWR2(0x21) C:0x019E F0 MOVX @DPTR,A 77: WR_3 = pWR3; C:0x019F 900000 MOV DPTR,#C_STARTUP(0x0000) C:0x01A2 E523 MOV A,pWR3(0x23) C:0x01A4 F0 MOVX @DPTR,A 78: } C:0x01A5 D0D0 POP PSW(0xD0) C:0x01A7 92AF MOV EA(0xA8.7),C C:0x01A9 22 RET
-
- Какой-то баг с _at_ исправили в недавно вышедшей v8.16a, генерилка здесь точно непричем. sqrt(256 знак., 29.08.2008 22:59)
- Проверил, поправили. - Chum_A(01.09.2008 10:30)
- Хм. мои проекты даже не заметили переход на новую версию. - POV(29.08.2008 14:15)
- Какой-то баг с _at_ исправили в недавно вышедшей v8.16a, генерилка здесь точно непричем. sqrt(256 знак., 29.08.2008 22:59)