飞思卡尔智能车程序汇总(2)

2019-06-11 16:19

DDRA=0x00; for(;;) {

delay(setnum[0]*100); PORTB_PB0=1; delay(setnum[1]*100); PORTB_PB0=0; } }

3.电机程序

#include /* common defines and macros */ #include \#include \#include \#include \

#define servo_period 20 //ms #define motor_pwm_frequ 1 //khz

void delay(unsigned int ms) {

unsigned int i;

DDRB_DDRB0=1;

unsigned char j; for(i=0;i

for(j=0;j<100;j++); } }

/******************************倍频

*****************************************/ void vPLLInit(void) {

unsigned char refdv; refdv=3; CLKSEL=0X00; PLLCTL_PLLON=1;

//disengage PLL to system

//turn on PLL

SYNR =0xc0 | ((80/(refdv+1))-1); REFDV=0x40 | refdv;

POSTDIV=0x00; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=160MHz; _asm(nop); //BUS CLOCK=80M _asm(nop);

while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it; CLKSEL_PLLSEL =1; }

/******************************倍频

*****************************************/

/** PWM初始化***/ void Init_PWMout(void) {

//engage PLL to system;

PWME = 0x00; //禁止输出

PWMPOL = 0xff;//极性寄存器,1 先输出高电平 后为低电平 0 先输出低电平 后为高电平

PWMCTL = 0xf0; //01 23 45 67 通道级联

PWMPRCLK=0x55; //Clock A=Bus Clock/32 ; Clock B=Bus Clock/32; PWMCLK=0b00000000; //选择clock:7B,6B,5A,4A,3B,2B,1A,0A PWME = 0xaa; //pp1,pp3,pp5,pp7口输出

PWMPER67 = 80/4*125/motor_pwm_frequ; PWMPER45 = 80/4*125/motor_pwm_frequ; PWMPER23 = 80/4*servo_period*125; PWMPER01 = 80/4*servo_period*125;

PWMDTY67 =0; PWMDTY45 =0; PWMDTY23 =0; PWMDTY01 =0; }

void main(void) {

/* put your own code here */ unsigned char i;

unsigned char setnum[12]; unsigned char cur_sel;

const char lcd_show[12][4]={\\\0\

vPLLInit();

lcd_init();

init_24c02();

init_btn();

EnableInterrupts;

for(i=0;i<12;i++)setnum[i]=RdEEPROM(i); //读取24c02

for(i=0;i<12;i++) //显示初值 {

disply_listchar((i/6)*42,i%6,lcd_show[i],1); disply_number((i/6)*42+16,i%6,setnum[i],5); }

Init_PWMout();

if(btn_change()) {

cur_sel=0;

for(i=0;i<12;i++) {

disply_listchar((i/6)*42,i%6,lcd_show[i],(cur_sel==i)?0:1); disply_number((i/6)*42+16,i%6,setnum[i],5); } for(;;) {

if(btn_add()) {

setnum[cur_sel]++;

disply_number((cur_sel/6)*42+16,cur_sel%6,setnum[cur_sel],5); }

if(btn_sub()) {

setnum[cur_sel]--;

disply_number((cur_sel/6)*42+16,cur_sel%6,setnum[cur_sel],5); }

if(btn_change()) {

cur_sel++;

if(cur_sel>11)cur_sel=0;


飞思卡尔智能车程序汇总(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017上海各区二模18题(含解析)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: