xxkj2010 发表于 2024-2-6 11:10:07

总觉得太菜了,现在连个STH8H2K17U的T11都用不了 | 已解决

据STC8H手册介绍,STH8H2K17U有个可以进行8位预分频的T11.


今天对着手册对其相关的寄存器进行配置,让T11产生1秒中断去控制接在P37的LED。
结果是没有效果,不知道又又又在哪里出错了。
这么简单的东西还用不了,总觉得对新事物老是很难接受,太菜了。{:cry:}

代码如下:
main.c
#include "stc8h.h"
#define   MAIN_Fosc       24000000L   //定义主时钟
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;

typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned int ushort;
typedef unsigned long ulong;
void Timer11_Init(void);                //1秒@24MHz
void delay_ms(u8 ms);
void main()
{
    P3M0 = 0x00;
    P3M1 = 0x00;
                Timer11_Init();
    while (1)
    {
                        delay_ms(1);
    }
}



void delay_ms(u8 ms)
{
   u16 i;
   do{
          i = MAIN_Fosc / 10000;
          while(--i);   //10T per loop
   }while(--ms);
}


void Timer11_Init(void)                //1秒@24MHz
{
      T11CR=0x02;//1000 0010 T11作定时器,12T 模式,用系统时钟SYSclk
      T11PS=199;//总分频12*200,1秒计数为10000
      T11H=(65535-10000)>>8;
      T11L=65535-10000;
      T11CR |=0x80;      //开始计数
      EA=1;
}


void Timer11_Isr(void) interrupt 13
{
      P37=!P37;
}
isr.asm
CSEGAT 021BH;原T11中断号
JMP      006BH;跳转到13号中断入口      
END




神农鼎 发表于 2024-2-6 11:30:37

有完整T11的测试程序供下载


https://www.stcaimcu.com/forum.p ... ptid=4707&pid=51001

xxkj2010 发表于 2024-2-6 11:45:58

神农鼎 发表于 2024-2-6 11:30
有完整T11的测试程序供下载



看不出问题所在,我把原代码复制下来试试

神农鼎 发表于 2024-2-6 11:49:30

xxkj2010 发表于 2024-2-6 11:45
看不出问题所在,我把原代码复制下来试试有完整的 附件


https://www.stcaimcu.com/forum.p ... ptid=4707&pid=51001


xxkj2010 发表于 2024-2-6 12:11:07

本帖最后由 xxkj2010 于 2024-2-6 12:13 编辑

神农鼎 发表于 2024-2-6 11:49
有完整的 附件



找到错误了,是忘记加 P_SW2 |= 0x80; 了
低级错误

soma 发表于 2024-3-13 11:32:52

学习一下
页: [1]
查看完整版本: 总觉得太菜了,现在连个STH8H2K17U的T11都用不了 | 已解决