查看: 1882|回复: 2

[其他] 改龙邱老师的程序清除不了TFLG1标志位

[复制链接]

该用户从未签到

5

主题

33

帖子

0

新手上路

Rank: 1

积分
46
最后登录
1970-1-1
发表于 2013-11-26 09:37:12 | 显示全部楼层 |阅读模式
程序是龙邱老师的TIM和ECT,改动了一点点。但是为什么向TFLG1写1时清除不了标志位呢
/********************************************
龙丘MC9S12XEP100多功能开发板
Designed by Chiu Sir
E-mail:chiusir@yahoo.cn
软件版本:V1.1
最后更新:2010年7月20日
相关信息参考下列地址:
------------------------------------
Code Warrior 5.0
Target : MC9S12XEP100
Crystal: 16.000Mhz
busclock:16.000MHz
pllclock:32.000MHz
-------------------------------------
说明:
分别演示ECT_TIMER和TIM_TIMER,
ECT_TIMER  PB7指示  中断周期   80ms
TIM_TIMER  PB6指示  中断周期   320ms    
中断周期没有推敲,大家可以自己算算看。
============================================*/
#include      
#include "derivative.h"
#define LEDCPU PORTK_PK5
#define LEDCPU_dir DDRK_DDRK5       
//产生?ms的定式中断
 void ECT_Timer_Init(void)
{
    //ECT_TSCR1=0X80;//TIMER INT ENABLED
    ECT_TSCR1=0x90;//计数器使能TEN|快速清零TFFCA
    //TIM_TSCR1=0X00;  //禁止TIM 
    ECT_TSCR2=0X85;//DIV 32->80ms
    ECT_TIOS  = 0xc0;  
    ECT_TCNT =0;     //   
    ECT_PACTL=0X50;  //PT7 PIN,PACN32 16BIT
    ECT_TFLG1 = 0xff;     // 清除各IC/OC中断标志位
    ECT_TFLG2 = 0xff;     // 清除自由定时器中断标志位   
       
}
void TIM_Timer_Init(void)
{
    //TIM_TSCR1=0X80;//TIMER INT ENABLED
    TIM_TSCR1=0x90;//计数器使能TEN|快速清零TFFCA
    //TIM_TSCR1=0X00;  //禁止TIM 
    TIM_TSCR2=0X87;//DIV 128->320ms
    TIM_TIOS  = 0xc0;    
    TIM_TCNT =0;     //   
    TIM_PACTL=0X50;  //PT7 PIN,PACN32 16BIT
    //ICPAR=0;   //8BIT DISABLED
    TIM_TFLG1 = 0xff;     // 清除各IC/OC中断标志位
    TIM_TFLG2 = 0xff;     // 清除自由定时器中断标志位    
}
//-----------------------------------------------------
// PLL初始化子程序   BUS Clock=16M
void setbusclock(void)
{  
    CLKSEL &= 0x7f;       //set OSCCLK as sysclk
  PLLCTL &= 0x8F;       //Disable PLL circuit
  CRGINT &= 0xDF;     
  SYNR = 0x47;                   
  REFDV = 0x42;         //PLLCLK=2×OSCCLK×(SYNR+1)/(REFDV+1)=64MHz ,fbus=32M
  PLLCTL =PLLCTL|0x70;  //Enable PLL circuit
  asm NOP;
  asm NOP;
  while(!(CRGFLG&0x08)); //PLLCLK is Locked already
  CLKSEL |= 0x80;        //set PLLCLK as sysclk
}
//-----------------------------------------------------
#pragma CODE_SEG DEFAULT
void Init_Dev(void)
{
    setbusclock();   
    ECT_Timer_Init();
    TIM_Timer_Init();
    DDRB = 0xff;  //OUT  FOR LED
    PORTB= 0x00;  //LEDs on
  
    LEDCPU_dir = 1;
    LEDCPU = 0;
    DDRK_DDRK6 = 1;
    PORTK_PK6 = 0;
   
   ECT_TFLG1_C7F = 1;
    ECT_TC7 = ECT_TCNT + 25000;
    TIM_TFLG1_C6F = 1;
    //TIM_TC6 = TIM_TCNT + 2500; 
  
   
   
}

 
void Dly_ms(int ms) 
{
  int ii,jj;
   if (ms
我知道答案 目前已有1人回答
回复

使用道具 举报

该用户从未签到

0

主题

49

帖子

0

注册会员

Rank: 2

积分
63
最后登录
2021-9-30
发表于 2013-11-26 10:38:07 | 显示全部楼层

回复:改龙邱老师的程序清除不了TFLG1标志位

 谢谢分享有关资料!
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

33

帖子

0

新手上路

Rank: 1

积分
46
最后登录
1970-1-1
 楼主| 发表于 2013-11-26 11:11:06 | 显示全部楼层

RE:改龙邱老师的程序清除不了TFLG1标志位

我发现我是我自己看错了。上面的程序没有问题清0了。只是肉眼看不到
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-10 02:58 , Processed in 0.086085 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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