使用C30的内部函数,可以方便的实现以前需要使用嵌入汇编才能实现的功能。如使能辅助振荡器SOSC,使用嵌入汇编通常写成:
asm volatile ("mov #OSCCON,W1");
asm volatile ("mov.b #0x46, W2"); // unlock sequence
asm volatile ("mov.b #0x57, W3");
asm volatile ("mov.b #0x02, W0");
// SOSCEN =1
asm volatile ("mov.b W2, [W1]");
asm volatile ("mov.b W3, [W1]");
asm volatile ("mov.b W0, [W1]");
使用内部函数,上面的代码就可以写成:
__builtin_write_OSCCONL(0x02); //使能SOSCEN
文章评论(0条评论)
登录后参与讨论