仿真器到手,我的第一个程序。定时器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)
{
}
} 我拿到手一个月了,等触摸库呢。 看数据手册,看编译器手册,搞了一2个小时,应该可以作为例程吧?
怎么没有人感兴趣呢? //直接写PB0=~PB0 编译通过,但运行结果没有实现LED的翻转 楼主你可以断点调试一下 试了,没有效果。 用 ! 行不 !也不行。 等着官方对上述问题的验证。 sbit led;
这样后面是不是少了点什么呢 cbailjc 发表于 2014-5-22 17:38
我拿到手一个月了,等触摸库呢。
触摸库需要申请吗? gw168sh 发表于 2014-5-24 13:25
sbit led;
这样后面是不是少了点什么呢
这是位定义的,和keil的bit是一样的。 为什么我烧写进去之后,灯要等大约一分钟之后才开始闪烁呢 这么诡异?看看配置位的情况,,还有复位电路。 50K接VCC 0.1uF接GND
中间接的复位脚 本帖最后由 gw168sh 于 2014-5-24 17:33 编辑
二极管接上了,限流电阻没接
配置位这样对的吧 期待后续学习笔记 我接的是10K的电阻。50,是不是有点大啊?可以计算一下上升时间。 海尔_小海 发表于 2014-5-23 06:15
//直接写PB0=~PB0 编译通过,但运行结果没有实现LED的翻转 楼主你可以断点调试一下 ...
请问一下这个H7P201开发要用什么C语言软件?HR10M我收到了 biying 发表于 2014-5-31 08:23
请问一下这个H7P201开发要用什么C语言软件?HR10M我收到了
用HR10M http://www.ichaier.com/downfa.php?thiks=YWF1cGxvYWRmaWxlLzIwMTQvMDQxMS8yMDE0MDQxMTA0MzAwNTUxNi5yYXJiYg==&n=6ZuG5oiQ5byA5Y+R5bel5YW3SFIxME3ova/ku7ZfVjEuMC4z 海尔_小海 发表于 2014-5-31 18:09
用HR10M http://www.ichaier.com/downfa.php?thiks=YWF1cGxvYWRmaWxlLzIwMTQvMDQxMS8yMDE0MDQxMTA0MzAwNT ...
我看HR7P201的数据手册,怎么没有讲C语言的例子?不想学汇编,只用C语言来编程,如何解决?有没有详细的教程? 本帖最后由 1125526801 于 2014-5-31 20:18 编辑
应该是sbit led;的问题,建议试试用宏定义 #defineledPB0; 然后,PB0=led; 这句删除掉
如果还不行的话,那估计是你定时器部分有问题。 yjbin 发表于 2014-5-26 14:42
我接的是10K的电阻。50,是不是有点大啊?可以计算一下上升时间。
我用仿真器试了一下,PB0 = ~PB0确实不行。
定义了sbit led,先led = ~led,再PB0 = led,就OK了。
也不明白为啥PB0 = ~PB0不行。 PB0和AN7复用, 要先关掉AD功能
页:
[1]