不能直接傳參
只能間接操作
- #define GPIOP0 0x80
- #define GPIOP1 0x90
- #define GPIOP2 0xA0
- #define GPIOP3 0xB0
- void SetGPIO(char GPIO,char Pin)
- {
- switch(GPIO)
- {
- case GPIOP0:
- P0 |= (0x01 << Pin);
- break;
- case GPIOP1:
- P1 |= (0x01 << Pin);
- break;
- case GPIOP2:
- P2 |= (0x01 << Pin);
- break;
- case GPIOP3:
- P3 |= (0x01 << Pin);
- break;
- }
- }
- void ResetGPIO(char GPIO,char Pin)
- {
- switch(GPIO)
- {
- case GPIOP0:
- P0 &= ~(0x01 << Pin);
- break;
- case GPIOP1:
- P1 &= ~(0x01 << Pin);
- break;
- case GPIOP2:
- P2 &= ~(0x01 << Pin);
- break;
- case GPIOP3:
- P3 &= ~(0x01 << Pin);
- break;
- }
- }
- bit ReadGPIO(char GPIO,char Pin)
- {
- bit IDR = 0;
- switch(GPIO)
- {
- case GPIOP0:
- if(P0 & (0x01 << Pin))IDR = 1;
- break;
- case GPIOP1:
- if(P1 & (0x01 << Pin))IDR = 1;
- break;
- case GPIOP2:
- if(P2 & (0x01 << Pin))IDR = 1;
- break;
- case GPIOP3:
- if(P3 & (0x01 << Pin))IDR = 1;
- break;
- }
- return IDR;
- }
復制代碼
|