Вот фрагмент отвечающего за эото кода:
Код
uint16_t MAS_DAT[LENTH];
...
__inline void Get_Data(void) {
volatile uint16_t *poi = (uint16_t*) MAS_DAT;
volatile uint16_t i = 0, l = 0;
uint32_t tmp1,tmp2;
while (pPIO->PIO_PDSR & VSYNC) {
i = 0;
while (pPIO->PIO_PDSR & HSYNC) {
//i++;
//while(pPIO->PIO_PDSR&(1<<30));//CLK
tmp1 = (pPIO->PIO_PDSR>>5);
tmp2 = (pPIO->PIO_PDSR>>5);
*poi = (uint16_t)(tmp2<<8)|tmp1;
poi++;
}
//asm("add %[value], %[value],#1" : [value] "=r" (l));
l++;
while (!(pPIO->PIO_PDSR & HSYNC) && (pPIO->PIO_PDSR & VSYNC));
}
poi = (uint16_t*)MAS_DAT;
*poi = i;
poi++;
*poi = l;
}
...
__inline void Get_Data(void) {
volatile uint16_t *poi = (uint16_t*) MAS_DAT;
volatile uint16_t i = 0, l = 0;
uint32_t tmp1,tmp2;
while (pPIO->PIO_PDSR & VSYNC) {
i = 0;
while (pPIO->PIO_PDSR & HSYNC) {
//i++;
//while(pPIO->PIO_PDSR&(1<<30));//CLK
tmp1 = (pPIO->PIO_PDSR>>5);
tmp2 = (pPIO->PIO_PDSR>>5);
*poi = (uint16_t)(tmp2<<8)|tmp1;
poi++;
}
//asm("add %[value], %[value],#1" : [value] "=r" (l));
l++;
while (!(pPIO->PIO_PDSR & HSYNC) && (pPIO->PIO_PDSR & VSYNC));
}
poi = (uint16_t*)MAS_DAT;
*poi = i;
poi++;
*poi = l;
}

