西比爱斯

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

2009年12月28日

摘要: 串口通信是一种通信接口简写SCI,它可是实现异步和同步两种传输模式。可以思考一下同步和异步的区别。 所谓同步就是接收方和发送方使用的是同一个时钟,步调一致的处理数据。典型的就是CPU和内存,通过总线存取数据。特点就是快,发送方和接收方不需要什么数据格式,数据线上的数据就是当前想读的数据,因为步调一致嘛。但是问题就是双方的速度要一致,且总线要提供时钟信号,否则就无法实现时钟的统一。这样的通信一般都在... 阅读全文
posted @ 2009-12-28 14:10 西比爱斯 阅读(532) 评论(0) 推荐(0) 编辑

摘要: 4:PWM信号PWM是利用数字信号控制模拟量的一种方式,是数字开关信号。在H8中负责发生PWM信号的是定时器,它的5个定时器都可以发生PWM,其中三号定时器和四号定时器还可以联合工作发送互补,多相的PWM信号。使用定时器发送PWM首先要认识到:1:定时器的基本功能只是累加计数,如果要发送PWM需要设置PWM模式。2:定时器发送PWM信号时针对特定端口的,不是每个端口都可以作为PWM信号的发生口。知... 阅读全文
posted @ 2009-12-28 10:46 西比爱斯 阅读(246) 评论(0) 推荐(0) 编辑

2009年12月23日

摘要: 3:定时器中断上一节讨论的自由定时器其实就是一个不断自增的计数器而已,而我们常常需要的是一个定时的中断功能。H8的定时器可以提供两种形式的时钟中断。比较中断和溢出中断。比较中断就是设置一个值,在定时器的计数器到达这个数字的时候就发出中断。另一种溢出中断就是在计数器到达自己的最大值的时候产生一个溢出中断。对于一个H8的定时器它有两个16位比较寄存器,GRA,GRB。当GR*的数字和TCNT的值一样的... 阅读全文
posted @ 2009-12-23 17:31 西比爱斯 阅读(362) 评论(0) 推荐(0) 编辑

2009年12月18日

摘要: 1:定时器种类H8的定时器有5个,加上前面说到的WDT总共有6个,定时器都是16位可编程定时器。它们可以提供如下功能:(1):自由定时器 最简单的应用,相当于一个自增的寄存器,溢出后从0开始,一般用来做时间统计等。(2):周期寄存器 给定时器一个比较值,每当到达这个比较值后触发一个CPU中断。(3):PWM发生器2:自由定时器 作为最简单的应用,首先从H8的定时器组开始说起,在之后的章节中将不再描... 阅读全文
posted @ 2009-12-18 15:38 西比爱斯 阅读(328) 评论(0) 推荐(0) 编辑

摘要: H8中有5个时钟,1个看门狗。看门狗电路和interval时钟是同一个电路,所以在使用看门狗的时候,只能指派别的时钟充当interval的功能。看门狗共有8种输入时钟,分别是主频的2,32,64,128,256,512,2048,4096分之一,在溢出时可以生成内部复位信号或者是中断。H8看门狗有三个寄存器进行控制,计数寄存器TCNT,控制寄存器TCSR和状态寄存器RSTCSR。从控制步骤上来说:... 阅读全文
posted @ 2009-12-18 10:45 西比爱斯 阅读(337) 评论(0) 推荐(0) 编辑

2009年12月16日

摘要: 秋叶通商的H8板搭载的LCD是M1632和SC1602BS,因其为字符式单色显示器所以操作非常简单。在电路设计上,其允许尽可能的节约端口而设计为4Bit和8Bit两种模式,也就说只需要连接4个I\O口就可以给这个LCD输出数据。上图中的In0,In1,In2,In3,In4,In7对应PB端口的0,1,2,3,4,7号端口。而从芯片的1-14号编码可以从硬件式样中找到对应的逻辑功能号PB0 PB1... 阅读全文
posted @ 2009-12-16 14:35 西比爱斯 阅读(284) 评论(0) 推荐(0) 编辑

2009年12月15日

摘要: 8:总结初次对硬件写程序写下感受,硬件编程的入门似乎都不是很顺利,而且资料不齐也是个很大的障碍。但是因为硬件的通用性很大所以容易找到规律。1:查阅芯片说明文档,找到芯片的集中工作模式的区别。2:获取芯片的内存Map图,向量表,ROM,RAM的位置确定后才能够编写连接脚本。3:编写启动代码,主要有:向量表,拷贝代码,DI()和EI()函数,引导到main4:编写C文件,初始化端口和总线,需要使用的模... 阅读全文
posted @ 2009-12-15 16:00 西比爱斯 阅读(195) 评论(0) 推荐(0) 编辑

摘要: 7:编写C语言代码对于大部分C程序员来说,面向硬件的编程并不是多大的问题,入力出力从printf,scanf变成了端口地址而已,其他的处理几乎一样。但是硬件也有自身的特点需要把握,譬如硬件初始化,芯片运行的模式设置,端输入输出口状态,中断是否屏蔽等都要初始化。而对于使用到特殊资源,比如计数器等还有别的特别的设置。这里只是讨论让程序跑动起来的基础设置。1:总线宽度,通过BSC.ABWCR来设置。2:... 阅读全文
posted @ 2009-12-15 15:40 西比爱斯 阅读(338) 评论(0) 推荐(0) 编辑

摘要: 6:编写启动代码 启动代码是确保芯片顺利启动的关键,一般都是用汇编语言编写。在单片机编程中启动代码的编写似乎有一个定式,就是先设置向量表,然后写一段初始化代码,最后调用C语言的_main函数。首先要处理的就是向量表,向量表一定是在单片机程序执行的起始位置处(大多数情况下都是0x0000)。它可以看成是一个为硬件提供的指针数组,在特定的时候硬件会通过这个指针数组中指针调用特定的处理。在单片机中,第一... 阅读全文
posted @ 2009-12-15 13:44 西比爱斯 阅读(316) 评论(0) 推荐(0) 编辑

2009年12月14日

摘要: 秋月通商出的AKI-H8开发板的开发环境非常简陋,但是作为系统学习嵌入式的教材非常不错,可以让学习者接触到编程中很底层的东西。1:首先,从秋月通商得到的开发资料中提取ASM编译器和CC编译器,并将其的地址添加到PATH中。2:因为程序开发都是使用C语言,那么就会经常使用到C的标准函数,而在连接的时候就会出现无法连接的情况。如果将ASM和CC中的文件放在一个文件夹里,那么就没什么问题了,但是如果想分... 阅读全文
posted @ 2009-12-14 22:23 西比爱斯 阅读(593) 评论(0) 推荐(0) 编辑