Board logo

标题: PLL编程不能起振,哪位大侠能够告诉我错在哪?还有 S19 这个文件在哪? [打印本页]

作者: 37823542    时间: 2006-7-12 07:55     标题: PLL编程不能起振,哪位大侠能够告诉我错在哪?还有 S19 这个文件在哪?

#include <hidef.h> /* for EnableInterrupts macro */
#include <MC68HC908SR12.h> /* include peripheral declarations */
#define uchar unsigned char
#define uint unsigned int


void ini_pll(void)
  PCTL=0x00;    //功    能: PLL时钟程序
  PBWC=0X80;
  PMSH=0x03;  
  PMSL=0xD1;
  PMRS=0xD0;
  PCTL=0x28;    //E=2
  while(PBWC_LOCK==0);
  PCTL_BCS = 1;
}


void ini_port(void)
{                 //0为输入口,1为输出口
  DDRA=0xA0;      //set direction
  DDRB=0x53;      //功    能: I/O初始化
  DDRC=0x33;
  DDRD=0xFF;
  PTA=0x80 ;
  PTB=0x00 ;
  PTC=0x30 ;
  PTD=0x00 ;
}


void init_timer1(void)
{
  T1SC_TSTOP=1;//功    能: 初始化定时器1
  T1SC_TRST=1;
  T1SC=0x43;
  T1MODH=0x01; //设0.5毫秒产生1次溢出中断
  T1MODL=0xF4; //模数寄存器设定值=500×(8/8)=$01F4
}
//声明变量
uchar  led_data;
//主程序
void main(void)
{
  DisableInterrupts;   //禁止所有中断
  CONFIG1=0x09;   //关闭看门狗, 5V模式
  T1SC_TSTOP=1;   //停止计时器1
  asm LDHX #$260;
  asm TXS;        //SP=25F
  ini_pll();
  CONFIG2=0x01;
  ini_port();
  init_timer1();  //定时器1初始化


  led_data=0x00;  //初始化变量
  T1SC_TSTOP=0; //打开定时器1
  EnableInterrupts;  //开中断
  /* enable interrupts */
  /* include your code here */
  for(;;){
 };
  //while(1); /* loop forever */
}


interrupt void T1_OverFlow_ISR(void)
{
   T1SC_TOIE=0;     //功    能: 定时器1溢出处理程序
   T1SC_TOF=0;
   if(PTC_PTC5==0)
   {
       PTC_PTC5=1;
   } else
   PTC_PTC5=0;
   PTD=led_data;
   T1SC_TOIE=1;
  }


这段程序编译后 ..\bin\P&E_FCS.abs.s19 烧写入芯片,电路没反应。请问:错在哪??


作者: strongchen    时间: 2006-7-12 09:40

先看看你的振荡电路是否起振?
作者: 37823542    时间: 2006-7-13 16:59

查了N久,终于查出来了:
要关外部中断。
作者: strongchen    时间: 2006-7-14 09:40

什么意思?PLL的起振与外部中断有关?不会吧...




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0