📄 32kpwm.c
字号:
volatile unsigned int *P_IOA_Data = (unsigned int*)(0x7000);
volatile unsigned int *P_IOA_Buffer = (unsigned int*)(0x7001);
volatile unsigned int *P_IOA_Dir = (unsigned int*)(0x7002);
volatile unsigned int *P_IOA_Attrib = (unsigned int*)(0x7003);
volatile unsigned int *P_IOB_Data = (unsigned int*)(0x7005);
volatile unsigned int *P_IOB_Dir = (unsigned int*)(0x7007);
volatile unsigned int *P_IOB_Attrib = (unsigned int*)(0x7008);
volatile unsigned int *P_Watchdog_Clear = (unsigned int*)(0x7012);
volatile unsigned int *P_TimerA_Data = (unsigned int*)(0x700A);
volatile unsigned int *P_TimerA_Ctrl = (unsigned int*)(0x700B);
volatile unsigned int *P_TimerB_Data = (unsigned int*)(0x700C);
volatile unsigned int *P_TimerB_Ctrl = (unsigned int*)(0x700D);
volatile unsigned int *P_System_clock = (unsigned int*)(0x7013);
volatile unsigned int *P_INT_CTRL = (unsigned int*)(0x7010);
volatile unsigned int *P_INT_CLEAR = (unsigned int*)(0x7011);
volatile unsigned int *P_ADC_Ctrl = (unsigned int*)(0x7015);
volatile unsigned int *P_ADC_MUX_Ctrl = (unsigned int*)(0x702B);
volatile unsigned int *P_ADC_MUX_DATA = (unsigned int*)(0x702C);
volatile unsigned int *P_Flash_Ctrl = (unsigned int*)(0x7555);
volatile unsigned int *P_Flash_Store = (unsigned int*)(0x8001);
int flag=0;
void main(){
*P_IOB_Dir=0x0300;
*P_IOB_Attrib=0x0300;
*P_IOB_Data=0x0000;
//*P_TimerA_Ctrl=0x0230;
//*P_TimerA_Data=0xffca; // PWM32.7KHz
*P_System_clock=0x0080;
*P_INT_CTRL=0x0010;
__asm("int irq");
while(1){
//if(flag){
// *P_TimerA_Ctrl=0x0230;
// *P_TimerA_Data=0xffca;
//}
//else
// *P_TimerA_Ctrl=0x0030;
*P_Watchdog_Clear=0x0001;
}
}
void IRQ4(void)__attribute__((ISR));
void IRQ4(void){
if(*P_INT_CTRL&0x0010){
flag=flag^0x0001;
if(flag){
*P_TimerA_Ctrl=0x0230;
*P_TimerA_Data=0xffd9;
}
else
*P_TimerA_Ctrl=0x0030;
*P_INT_CLEAR=0x0010;
}
__asm("int irq");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -