![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
avr学习之路
文章平均质量分 67
a5436137
这个作者很懒,什么都没留下…
展开
-
atmega48 的模拟比较器的proteus仿真
<br />题目很明显,但是结果确不那么明显,搞了半天没在搞出来…… proteus这东西,不知道能不能信。<br /> <br />用proteus做的时候,对于比较中断的响应有点迟钝,总是会漏掉几个响应。而且一定要写出中断模式,如果不采用中断,只是查询ACO的话,ACO的值根本不会变化。而且设置内部能量隙接入到AIN0的时候,根本就无从下手。omg<br />#include <avr/io.h>#include <avr/interrupt.h>ISR(ANALOG_COMP_vect){原创 2010-07-01 04:34:00 · 2042 阅读 · 0 评论 -
模拟比较搞出来了 proteus应该有问题
今天花了一会儿解决了昨天的问题,搭了一个板子,实现了模拟比较器。结果发现我的程序在硬件电路上是正确的。每当AIN0的值穿越过AIN1的电压值的时候,总是会发生模拟比较中断,同时根据ACO的值去改变led的状态。硬件是没问题的,但是软件依然有问题。我发现在proteus下,每次当AIN1的值到达AIN0的值的时候,并不会发生中断。只有当AIN1到达AIN0之下的时候,才会中断,而且AC0的值有些时候在中断中会改变。单步调试,越调心情越差,不管了。原创 2010-07-01 17:30:00 · 623 阅读 · 1 评论 -
按键的编程-独立按键的轮询法
<br />普通的书上,都只会介绍常见的那种按键编程,就是不停的轮回查询按键的状态值,然后一旦检测到按键的状态值变化,就采取相应的行动。这种方法对于cpu的利用率不高,但是在简单的应用中,可以一试。/*检测一个按键的按下,按键接在PORTB的第0口,采用查询的方法,最土的那种*/#include <avr/io.h>#include <util/delay.h>void IO_initial(){ DDRB = 0x00; //B口作为输入,检测独立按键 PORTB = 0xff; //原创 2010-07-02 16:47:00 · 1659 阅读 · 0 评论 -
按键状态机—实现连发
<br />状态机的编程,最好的地方就是在于,一旦框架出现了,如果需要实现新的功能,只是需要增加新的状态。在c语言中,只需要增加几个简单的变量即可。而在labview中,只需要增加一个分支框图即可。就跟累积积木一样,为后期的更改提高了很大的可塑性。<br />在上次的程序中,更改一下,实现连发功能。关键是设置变量,检测按键按下的时间。同时增加一个状态,就是所谓的“连发状态”。<br />//这个的案件带有连按的功能,如果按下的时间超过一秒的话,进行连按的计算,也就是相应的加上一个状态key_state_3,原创 2010-07-02 17:18:00 · 2490 阅读 · 0 评论