void TIMER32_0_IRQHandler (void) { LPC_TMR32B0->IR = 1; LPC_ADC->CR|=(1<<24); while((LPC_ADC->DR[5]&0x80000000)==0) { napiecie=((LPC_ADC->DR[5]>>6)&0x3FF); napiecie=3300*napiecie/1024; wyslijnap(napiecie); } on=0; while(on==0); } //procedura obslugi przerwania od przycisku void PIOINT2_IRQHandler () { LPC_TMR32B1->TCR = 0x01; while (LPC_TMR32B1->TCR & 0x01); if(LPC_GPIO2->MIS == 4) { napis("Przerwanie zagniezdzone"); wyslij(10); wyslij(13); on=1; dioda=dioda+1; if((dioda%2)==0) { LPC_GPIO3->DATA=0x0; } if((dioda%2)!=0) { LPC_GPIO3->DATA=0x4; } } } void wyslijnap(int wartosc) { int lokalna; int j=1000; int i=0; while (!(LPC_UART->LSR & 0x20)); napis("Napiecie wynosi [mV]: "); while(i<4) { lokalna=(int)(wartosc/j); wyslij(lokalna+48); wartosc=wartosc-(lokalna*j); j =j/10; i=i+1; } wyslij(10); wyslij(13); } void wyslij(int liczba) { while (!(LPC_UART->LSR & 0x20)); LPC_UART->THR=liczba; } void napis(char *pisz) { int i=0; while(pisz!='\0') { while (!(LPC_UART->LSR & 0x20)); LPC_UART->THR=(pisz); i++; } } |