Судя из справки CVAVR 2.05.0, данный тип (long) пока не поддерживается. "The current version of the CodeVisionAVR C compiler has the following limitations:
· the long long, double, _Complex and _Imaginary data types are not yet supported"
Код: Выделить всё
;++status;
LDI R26,LOW(_status)
RCALL __GETD1P_INC
SUBI R30 , LOW ( - 1 )
SBCI R31 , HIGH ( - 1 )
SBCI R22 , BYTE3 ( - 1 )
SBCI R23 , BYTE4 ( - 1 )
RCALL __PUTDP1_DEC
И выдача данных идет по 0/1, стало быть читать надо по 1/0 для надежности.RAM Allocation
Variable Address Size
--------------------------------------------------------------------------------
status 00A8h 4
Код: Выделить всё
status=0;
STB=LO;
for(i=0;i<21;i++)
{
STB=HI;
status<<=1;
if(DAT==1)
status|=0x01;
STB=LO;
};
STB=HI;