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++;
}
}
|