智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1132|回复: 6
打印 上一主题 下一主题

谁能帮忙看看这个程序??

[复制链接]

6

主题

27

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5357
威望
4214
贡献
971
兑换币
126
注册时间
2014-9-26
在线时间
86 小时
跳转到指定楼层
1#
发表于 2014-10-28 19:44:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 捷克龙 于 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');
  }
}
回复

使用道具 举报

28

主题

2228

帖子

1

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
15817

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章资源大师奖章

QQ
威望
7430
贡献
4213
兑换币
5193
注册时间
2013-12-9
在线时间
2087 小时
2#
发表于 2014-10-28 21:35:10 | 只看该作者
128么  不太清楚
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5357
威望
4214
贡献
971
兑换币
126
注册时间
2014-9-26
在线时间
86 小时
3#
 楼主| 发表于 2014-10-29 09:24:05 | 只看该作者
六步上篮 发表于 2014-10-28 21:35
128么  不太清楚

嗯,是128的程序。我才刚学128,好多东西都不懂。
回复 支持 反对

使用道具 举报

25

主题

459

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2795
威望
1399
贡献
866
兑换币
886
注册时间
2014-2-12
在线时间
265 小时
4#
发表于 2014-10-29 10:13:17 | 只看该作者
定时中断里边在干嘛?
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5357
威望
4214
贡献
971
兑换币
126
注册时间
2014-9-26
在线时间
86 小时
5#
 楼主| 发表于 2014-10-29 13:36:51 | 只看该作者
我们的故事很多 发表于 2014-10-29 10:13
定时中断里边在干嘛?

什么都不干。

回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
886
威望
540
贡献
200
兑换币
113
注册时间
2011-5-10
在线时间
73 小时
6#
发表于 2014-10-29 15:14:08 | 只看该作者
你在打印a后面加个延时试试,每次发送数据前都要检查缓冲区是否为空吧。。。
回复 支持 反对

使用道具 举报

6

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2593
威望
1332
贡献
825
兑换币
872
注册时间
2013-3-12
在线时间
218 小时
7#
发表于 2014-10-29 19:30:16 | 只看该作者
加个延时应该就行了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-20 20:33 , Processed in 0.087822 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表