智能车制作

标题: 谁能帮忙看看这个程序?? [打印本页]

作者: 捷克龙    时间: 2014-10-28 19:44
标题: 谁能帮忙看看这个程序??
本帖最后由 捷克龙 于 2014-10-28 19:46 编辑

这个程序按照理想状况不是应该是一直打印a吗??
可是为什么复位一下只打印几次就停了呢???



#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
uint count=0;
void delay(int x)
{
    int i = 0,j = 0;
    for(i = 0; i < x; i++)
    for(j = 0; j < 3000; j++);
}
void SetBusClk(unsigned char x) //设置时钟
{
CLKSEL_PLLSEL=0; //不选用IPLL锁相环
PLLCTL_PLLON=0;  //停止锁相环电路
REFDV =0X07;     //参考频率2M
SYNR=0Xc0 | 0X17;//Fbus=48M Fvoc=96M
  PLLCTL_PLLON=1;        //启动锁相环
  _asm(nop);
  _asm(nop);
  while(CRGFLG_LOCK==0);//等待PLL稳定输出
  POSTDIV=0X00;         //对VOC输出不分频
  CLKSEL_PLLSEL=1;      //设定IPLL为系统时钟
}               

void SCI_Init (void)
{
    SCI0BD  = 48000000 / 16 / 9600;   //设置SCI0波特率为9600
    SCI0CR1 = 0x00;     //设置SCI0为正常模式,八位数据位,无奇偶校验
    SCI0CR2 = 0x2c;  
}               
void PIT_Init(void)        //PIT初始化
{                                                     
   PITCFLMT_PITE=0;       //禁止PIT来进行初始化
   PITCE_PCE0=1;          //使能第0号通道
   PITMTLD0=(97-1);       //微定时器加载寄存器设为96
   PITMUX=0X00;           //通道零连到微计时器0
                          
   PITLD0=(5000-1);        //计时周期= (PITMTLD + 1) * (PITLD + 1) / fBUS.
   PITTF_PTF0 = 1;                        //定时时间=96/48M*500=10ms   
   PITINTE_PINTE0=1;      //使能通道零定时中断
   PITCFLMT_PITE=1;       //使能PIT
}
void DeviceInit()
{


  SetBusClk(48);
  SCI_Init();
}

void uart_putchar ( unsigned char c)
{
  
  while(!(SCI0SR1&0x80)) ;      
  SCI0DRL=c;
}
                                                                                    

void main(void) {   
   
   
DisableInterrupts;                             
  DeviceInit();     
  PIT_Init();
EnableInterrupts;
  for(;;)
  
  {     uart_putchar('a');
  }
}

作者: 六步上篮    时间: 2014-10-28 21:35
128么  不太清楚
作者: 捷克龙    时间: 2014-10-29 09:24
六步上篮 发表于 2014-10-28 21:35
128么  不太清楚

嗯,是128的程序。我才刚学128,好多东西都不懂。
作者: 我们的故事很多    时间: 2014-10-29 10:13
定时中断里边在干嘛?
作者: 捷克龙    时间: 2014-10-29 13:36
我们的故事很多 发表于 2014-10-29 10:13
定时中断里边在干嘛?

什么都不干。


作者: 1214222715    时间: 2014-10-29 15:14
你在打印a后面加个延时试试,每次发送数据前都要检查缓冲区是否为空吧。。。
作者: 夜雨寒    时间: 2014-10-29 19:30
加个延时应该就行了




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2