yjbin 发表于 2014-5-22 17:36:54

仿真器到手,我的第一个程序。定时器0的使用。

本帖最后由 yjbin 于 2014-5-23 20:09 编辑



有两个问题,大家看一下。

#include "hic.h"
#include "hr7p201.h"



#define uchar unsigned char
#define uintunsigned int


//-------------------宏定义--------------------------//
#defineC_TMR0      7             //Timer0初始赋值变量

uchar   count;
sbit   led;



/*--------------定 时 器 0 初 始 化 子 程 序----------------
                     *                                     *
----------------------------------------------------------*/
void TMR0_Init()
{
   T8NPRS0=0;
    T8NPRS1=1;
    T8NPRS2=0;   //8分频
    T8NPRE=1;
    T8NEN=1;
    T8NIE=1;                      // 定时器0中断使能
    GIE = 1;                                     //开全局中断使能位
    T8N = C_TMR0;      }



void isr(void) interrupt
{
        T8NIF= 0;                                    //清TIMER0中断标志
        T8N= C_TMR0;                           //TIMER0重新赋值
if(++count==20)
    {
   count=0;
   led=~led;
    PB0=led;   //直接写PB0=~PB0 编译通过,但运行结果没有实现LED的翻转。不支持吗?   
}
   
}
void main()
{
      PBT0=0;
      TMR0_Init();
      while(1)
      {

      }      
}

cbailjc 发表于 2014-5-22 17:38:07

我拿到手一个月了,等触摸库呢。

yjbin 发表于 2014-5-22 18:45:44

看数据手册,看编译器手册,搞了一2个小时,应该可以作为例程吧?
怎么没有人感兴趣呢?

海尔_小海 发表于 2014-5-23 06:15:11

//直接写PB0=~PB0 编译通过,但运行结果没有实现LED的翻转 楼主你可以断点调试一下

yjbin 发表于 2014-5-23 08:01:54

试了,没有效果。

mcu5i51 发表于 2014-5-23 14:27:46

用 ! 行不

yjbin 发表于 2014-5-23 18:36:40

!也不行。

cooleaf 发表于 2014-5-23 22:32:56

等着官方对上述问题的验证。

gw168sh 发表于 2014-5-24 13:25:01

sbit   led;

这样后面是不是少了点什么呢

Eastnorth 发表于 2014-5-24 13:41:42

cbailjc 发表于 2014-5-22 17:38
我拿到手一个月了,等触摸库呢。

触摸库需要申请吗?

yjbin 发表于 2014-5-24 14:38:00

gw168sh 发表于 2014-5-24 13:25
sbit   led;

这样后面是不是少了点什么呢

这是位定义的,和keil的bit是一样的。

gw168sh 发表于 2014-5-24 15:21:33

为什么我烧写进去之后,灯要等大约一分钟之后才开始闪烁呢

yjbin 发表于 2014-5-24 16:37:24

这么诡异?看看配置位的情况,,还有复位电路。

gw168sh 发表于 2014-5-24 17:19:45

50K接VCC 0.1uF接GND
中间接的复位脚

gw168sh 发表于 2014-5-24 17:23:38

本帖最后由 gw168sh 于 2014-5-24 17:33 编辑

二极管接上了,限流电阻没接

gw168sh 发表于 2014-5-26 08:17:41


配置位这样对的吧

juncheng14 发表于 2014-5-26 08:36:47

期待后续学习笔记

yjbin 发表于 2014-5-26 14:42:35

我接的是10K的电阻。50,是不是有点大啊?可以计算一下上升时间。

biying 发表于 2014-5-31 08:23:14

海尔_小海 发表于 2014-5-23 06:15
//直接写PB0=~PB0 编译通过,但运行结果没有实现LED的翻转 楼主你可以断点调试一下 ...

请问一下这个H7P201开发要用什么C语言软件?HR10M我收到了

海尔_小海 发表于 2014-5-31 18:09:38

biying 发表于 2014-5-31 08:23
请问一下这个H7P201开发要用什么C语言软件?HR10M我收到了

用HR10M http://www.ichaier.com/downfa.php?thiks=YWF1cGxvYWRmaWxlLzIwMTQvMDQxMS8yMDE0MDQxMTA0MzAwNTUxNi5yYXJiYg==&n=6ZuG5oiQ5byA5Y+R5bel5YW3SFIxME3ova/ku7ZfVjEuMC4z

biying 发表于 2014-5-31 18:37:05

海尔_小海 发表于 2014-5-31 18:09
用HR10M http://www.ichaier.com/downfa.php?thiks=YWF1cGxvYWRmaWxlLzIwMTQvMDQxMS8yMDE0MDQxMTA0MzAwNT ...

我看HR7P201的数据手册,怎么没有讲C语言的例子?不想学汇编,只用C语言来编程,如何解决?有没有详细的教程?

1125526801 发表于 2014-5-31 20:16:55

本帖最后由 1125526801 于 2014-5-31 20:18 编辑

应该是sbit   led;的问题,建议试试用宏定义 #defineledPB0; 然后,PB0=led; 这句删除掉

如果还不行的话,那估计是你定时器部分有问题。

rainbow 发表于 2014-6-14 21:52:10

yjbin 发表于 2014-5-26 14:42
我接的是10K的电阻。50,是不是有点大啊?可以计算一下上升时间。

我用仿真器试了一下,PB0 = ~PB0确实不行。
定义了sbit led,先led = ~led,再PB0 = led,就OK了。
也不明白为啥PB0 = ~PB0不行。

海尔_大海 发表于 2014-6-16 12:56:00

PB0和AN7复用, 要先关掉AD功能
页: [1]
查看完整版本: 仿真器到手,我的第一个程序。定时器0的使用。