智能车制作
标题:
谁能帮忙看看这个程序??
[打印本页]
作者:
捷克龙
时间:
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