编译器:Freescale CodeWarrior,其中的上横线都未标出。如IRQ字母上面本来应该有一个横线。
一:I/O
普通IO口一般就用porta和portb,主要就下面两句:
DDRB=0xff;//设置为输出
PORTB=0x00;//置为低电平
二:Interrupt
S12系列配备一个标记为IRQ的外部中断,该引脚出现低电平或者电平下降沿时,则会产生中断请求。
IRQCR_IRQE:0表示低电平有效,1表示下降沿有效。
IRQCR_IRQEN:使能。表示IRQ中断允许。
主要就是下面这么一个中断响应程序:其它中断也是参照着写:
#pragma CODE_SEG __NEAR_SEG NON_BANKED//跟内存分配有关,具体暂时不是很清楚
void interrupt 6 IRQ_INT(void) {;//IRQ和PE1同一个管脚。在中断向量中第7个,所以interrupt 6。
DDRB=0xff;//中断响应后LED灯亮的程序。
PORTB=0xf0;
}
#pragma CODE_SEG DEFAULT
三:PWM
PWM:脉冲调制信号
概述:
之前写脉冲信号的时候可以用定时中断用CPU输在在普通IO口上高低电平来实现。
现在S12芯片为此特地分出的一个模块,更加便捷ÿ