📄 przyciskeint0.c
字号:
/******************************************************************************/
/* PrzyciskEINT0.c */
/******************************************************************************/
#include <LPC2103.H> //Definicje dla procesora LPC2103.
#include <STRING.H> //Zawiera funkcje operujace na lancuchach znakow.
#ifndef __PrzyciskEINT0_c //Zabezpieczenie przed wielokrotnym wczytaniem pliku.
#define __PrzyciskEINT0_c
char informacja[40]; //Przecowuje string wysylany UARTem
extern char pomiarCisnienia_hPa[10]; //Zdefiniowane w pliku ProgramGlowy.c
extern char pomiarCisnienia_mmHg[10]; //Zdefiniowane w pliku ProgramGlowy.c
extern void wyslijWyraz(char *); //Zdefiniowane w pliku PortSzeregowy.c
__irq void IRQodEINT0(void) //Procedura obslugi przerwania od przycisku.
{
VICIntEnClr &= ~0x00004000; //Deaktywacja przerwania od EINT0.
strcpy(informacja,"Cisnienie wynosi: ");
strcat(informacja,pomiarCisnienia_hPa);
strcat(informacja," (");
strcat(informacja,pomiarCisnienia_mmHg);
strcat(informacja,")\n");
wyslijWyraz(informacja);
EXTINT = 0x01; //Wyczyszczenie flagi od EINT0.
VICVectAddr = 0; //Zerowanie rejestru z wektorami przerwan.
VICIntEnable |= 0x00004000; //Ponowna aktywacja EINT0.
}
void inicjalizujPrzyciskEINT0(void)
{
PINSEL1 |= 0x00000001; //P0.16 -> EINT0.
EXTMODE = 0x01; //EINT0 uaktywniane zboczem....
EXTPOLAR =0; //...opadajacym.
VICVectAddr0 = (unsigned int) &IRQodEINT0; //Adres procedury obslugi przerwania od EINT0.
VICVectCntl0 = 0x2E; //Przerwanie EINT0 jest przerwaniem wektorowanym.
VICIntEnable |= 0x4000; //Uaktywnienie przerwaia od EINT0.
EXTINT = 0x01; //Wyzerowanie flagi od EINT0.
}
#endif // __PrzyciskEINT0_c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -