Board logo

标题: XDP512输出比较问题,百思不得其解? [打印本页]

作者: verilog_007    时间: 2011-4-11 18:30     标题: XDP512输出比较问题,百思不得其解?

本帖最后由 verilog_007 于 2011-4-11 18:31 编辑

配置程序如下:
TSCR1_TEN = 0;        //Timer Disable:
TSCR1_TSWAI = 1;      //Timer Module Stops While in Wait
TSCR1_TSFRZ =1;       //Timer and Modulus Counter Stop While in Freeze   TSCR1_TFFCA = 0;      TSCR1_PRNT = 1;       //1 = Enables  
TSCR2_TOI = 0;        //Timer Overflow Interrupt disable:      
TSCR2_TCRE = 0;       //Timer Counter Reset disable:   
PTPSR = 0b00001111;
TFLG2_TOF = 1;        //Timer Overflow Flag, Set when 16-bit free-running  
TIOS  = 0b00000010;   
TIE   = 0b00000010;   // Interrupt Enable
TFLG1 = 0b11111111;  
TTOV  = 0b00000000;  
TCTL1 = 0b00000000;        
TCTL2 = 0b00001000;//  
CFORC = 0b00000010; //通道1初始电平通过强制输出比较为0      
TCTL1 = 0b00000000;  
TCTL2 = 0b00000100; //通道1电平设为翻转      TC1 = 2000;
TSCR1_TEN = 10;        //Timer Enable:

#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 9 Vtimch1Interrupt(void) // Enhanced timer channel 1  Interrupt
{
  asm("nop");
  TC1+=1999;
  TFLG1 = 0b00000010;//clear flag
}

问题1,
执行如下四条语句PIT的管脚寄存器仍然是1(PIT=255)即CFORC = 0b00000010;语句没有起作用,什么原因?
TCTL1 = 0b00000000;        
TCTL2 = 0b00001000;//  
CFORC = 0b00000010; //通道1初始电平通过强制输出比较为0      
TCTL1 = 0b00000000;  
TCTL2 = 0b00000100; //通道1电平设为翻转   
问题2,
比较匹配时中断是产生了,但是通道1的管脚并没有翻转(PIT=255)
问题3,
我用的是软件仿真,还有就是软件仿真和实际在芯片中运行的情况是完全一样吗?软件仿真会不会出错?


作者: verilog_007    时间: 2011-4-11 18:52

后来我又发现,必须把其他通道的输出比较管脚电平设为与通道0一样才好用,而不管通道0是否设为输出比较,即其他管脚电平受通道1设置的影响?请问是这样吗?
TCTL1 = 0b00000000;  
TCTL2 = 0b00000001;
作者: verilog_007    时间: 2011-4-12 10:16

请各位知道一下,现在真的很郁闷?
作者: strongchen    时间: 2011-5-6 11:58

还是先用硬件调试一下看看,是否与软件仿真的结果一致。




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