Î÷°²Å·ÑÇѧԺ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©
ldr sp,=SFE(FIQ_STACK) ;
bic r0,r0,#MODE_MSK ; //Çå³ýģʽλ orr r0,r0,#IRQ_MODE ; //ÉèÖÃÖжÏÇëÇóλ msr cpsr_c,r0 ; //¸Ä±äģʽλ ldr sp,=SFE(IRQ_STACK) ; //½áÊøÖжÏÇëÇó¶ÑÕ» bic r0,r0,#MODE_MSK ; //Çå³ýģʽλ orr r0,r0,#SYS_MODE ; //ÉèÖÃϵͳģʽλ msr cpsr_c,r0 ; //¸Ä±äģʽλ ldr sp,=SFE(CSTACK) ; //½áÊø¶ÑÕ»Àà
5.2 Ö÷³ÌÐò
ͼ5-1
Ö÷»·Â·³ÌÐò´úÂ룺 #include \#include \#include \#include \#include \#include \#include \
21
Î÷°²Å·ÑÇѧԺ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©
int main (void) { uint8
lines[]={0xfd,0x23,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x10,0x00,0x90,0xdd,0xcc,0xbb,0xaa}; //»ÏßÊý×é
uint8
addrxy1[]={0xfd,0x23,0x00,0x08,0,160,0,45,0,160,0,20,0xdd,0xcc,0xbb,0xaa};
//uint8 addrxy1[]=
uint8 state=0; // ½çÃæ×´Ì¬±äÁ¿¶¨Òå¡¢¸³Öµ
uint16 touch_x=0x0; // ´¥ÃþµãX×ø±ê±äÁ¿¶¨Òå/¸³£¨ÈÎÒ⣩³õÖµ uint16 touch_y=0x0; // ´¥ÃþµãY×ø±ê±äÁ¿¶¨Òå/¸³£¨ÈÎÒ⣩³õÖµ uint8 pic_id=0x1f; // ͼƬ±àºÅ±äÁ¿¶¨Òå¡¢¸³Öµ uint8 option3=0x3; //¶þ¼¶Ä¿Â¼Æô¶¯Í£Ö¹ÅжÏ
TargetResetInit(); // Ä¿±ê°å³õʼ»¯ UART1_Init(); // UART1³õʼ»¯
DelayMS(100); // ÓÃÓÚ×öÆäËû´¦Àí»òÑÓʱ£¬Ê¹µÃ²ÊÆÁÖÕ¶ËÉϵçÍê SetColor(0x6781F,0x06ff); // °×µ×À¶ WaitNoBusy(); // LCM ¿ÕÏÐÅÐÌø DisPicture(2); //ÏÔʾµÚ1·ùͼƬ SetColor(0x9152,0x6eff);
ClearScreen(); // ÇåÆÁ£¨µ÷É«°åÉèÖúó±ØÐëÇåÆÁ£© DelayMS(10);
PutString(10,10,0x12,\¶þÁãÒ»¶þ½ç±ÏÒµÉè¼Æ\ DelayMS(100);
PutString(65,60,0x13,\»ùÓÚÎïÁªÍøµÄ\ DelayMS(100);
PutString(100,100,0x13,\°²±£ÏµÍ³\ DelayMS(100);
PutString(170,190,0x12,\Î÷°²Å·ÑÇѧԺ\ DelayMS(100);
PutString(150,210,0x12,\ͨÐŹ¤³Ì ËÄÈËС×é\
DelayMS(3000);
PageMenu(); // ²Ëµ¥º¯Êý
22
Î÷°²Å·ÑÇѧԺ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©
for(;;) // Ñ»·Ìå {
WaitNoBusy(); // ÎÞ´¥ÃþÅÐÌø switch(state) // ɢת£¨Ìõ¼þÌø×ª£© {
//Ö÷²Ëµ¥½çÃæ case 0:
if(GetTouchValue(&touch_x,&touch_y)) // ´¥ÃþÅжϣ¬·µ»Ø´¥ÃþÖµ {
pic_id=GetTouchID(touch_x,touch_y); // »ñµÃͼƬID£¬Í¬Ê±¸Ä±äÑÕÉ«
if(pic_id<12) // ID ±ß½çÅÐÌø {
Page2(); panbie(pic_id);
state=1; // Ìø×ª½çÃæ×´Ì¬ } else break; } break;
case 1:
if(GetTouchValue(&touch_x,&touch_y)) {
option3=TouchValid(touch_x,touch_y); {
if(option3==0) { Page2();
state=panbie_bt(pic_id); }
else if(option3==1) { Page2(); panbie(pic_id);
23
Î÷°²Å·ÑÇѧԺ±¾¿Æ±ÏÒµÂÛÎÄ£¨Éè¼Æ£©
state=1; }
else if(option3==2) {
WaitNoTouch();
DelayMS(15); // ÑÓʱ state=2; }
else if(option3==3) {
WaitNoTouch();
DelayMS(15); state=2; } else {
WaitNoTouch(); state=1; } break; } } break;
//ÔÚϼ¶½çÃæÖб»°´ÁË·µ»Ø¼ü case 2: PageMenu(); state=0; break; default:break; } } }
24
// ÑÓʱ