Question
如何通过软件复位AVR?
Answer
如果你想通过软件复位AVR,你应该使用内部看门狗。简单的使能它和让它溢出。当看门狗触发后,程序计数器返回到0,清除所有的寄存器和其他正在执行的任务,这与将RESET脚拉低有同样的效果。
你不应该处理: --用另一个AVR的引脚连接外部RESET引脚。在短暂的复位时间,AVR的引脚会三态失效,这会导致RESET无效。 --跳到程序地址0,跳到程序地址0,这不会清除全部的寄存器,所以你不会得到一个完整的“复位”。
下列是每30mS复位一次AVR的例子代码(GCC):
#include
#include
int main(void)
{
wdt_enable(WDTO_30MS);
while(1) {};
}
或者你可以生成一个宏:
#include
#include
#define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {}
int main(void)
{
Reset_AVR();
}
关键字:AVR 编程 软件复位
引用地址:
AVR编程_如何通过软件复位AVR?
推荐阅读最新更新时间:2024-11-12 11:20
LLC针对其可编程双线单极型 霍尔效应开关推出全新封装选项
美国马萨诸塞州伍斯特市 Allegro MicroSystems, LLC宣布针对其A119x/A119x-F(A1190、A1192和A1193)系列双线单极型霍尔开关产品推出全新封装选项,用户可以在生产线末端进行调整,从而针对应用优化磁性开关点的准确度。A119x和A119x-F采用Allegro公司先进的BiCMOS晶圆制造工艺生产,这项工艺采用了Allegro享有专利的高频4相斩波稳定技术,可以使器件在全工作温度范围内实现磁稳定性,并且消除了单霍尔元件构成的器件在应用于严苛环境下产生的固有偏差。采用新封装的器件不再需要外部电容和相关PCB,可缩小尺寸,减少组件数量,降低装配成本,并显著简化设计过程。A119x-F系列器件针
[电源管理]
建立一个AVR单片机RTOS(7)—占先式内核(只带延时服务)
第七篇:占先式内核(只带延时服务) Preemptive Multitasking 当大家理解时间片轮番调度法的任务调度方式后,占先式的内核的原理,已经伸手可及了。 先想想,占先式内核是在什么地方实现任务调度的呢?对了,它在可以在任务中进行调度,这个在协作式的内核中已经做到了;同时,它也可以在中断结束后进行调度,这个问题,已经在时间片轮番调度法中已经做到了。 由于中断是可以嵌套的,只有当各层嵌套中要求调度,并且中断嵌套返回到最初进入的中断的那一层时,才能进行任务调度。 #include avr/io.h #include avr/Interrupt.h #include avr/signal.h unsigned
[单片机]
AVR中断处理问题
开发工具:AVR Studio 6 +WinAVR l很早以前版本的该开发环境有: void ADC_vect(void) __attribute__((interrupt)); void ADC_vect(void) { 中断处理代码 } 可以中断嵌套, 还有一种不可以中断嵌套的: ) 现在都是采用: ISR(vector, ) //其中attributes为可选择参数有:ISR_BLOCK(阻塞,即不中断嵌套), ISR_NOBLOCK(可中断嵌套), ISR_NAKED ()and ISR_ALIASOF这4个参数,
[单片机]
如何使用数字电位器构建可编程振荡器
数字电位器(digiPOT)功能多样,应用广泛,例如,用于滤除或生成交流信号。但是,有时频率必须能够有所变化,并根据应用需求调整。在此类设计中,支持通过适当的接口调整频率的可编程解决方案极为有用,在有些情况下,非常有助于开发。本文介绍一种简单易行的可编程振荡器构建方法,其中,振荡频率和幅度可以通过使用digiPOT来彼此独立地调节。 图1.振幅稳定的可编程文氏电桥振荡器,其中电阻由digiPOT代替。 图1显示的是典型二极管稳定文氏电桥振荡器,可用于在输出端(VOUTPUT)产生约10 kHz至200 kHz的精确正弦波信号。文氏电桥振荡器有两个桥路,一个由带通滤波器构成,另一个由分压器构成。除了ADA4610-1
[模拟电子]
工业机器人编程教程之逻辑编程
1、逻辑
输入输出的设置是为了与外设设备的,例如工具等
2、可用逻辑指令
3、等待时间功能逻辑指令
(2)等待程序可用编写,例如以下常用形式。
(3)如果“WT F”指令被选择,你们下列参数可以被设置
(4)如果“WAIT FOR”指令被选择,你们下列参数可以被设置
(5)如果“WAIT FOR”指令被采用打断前置判断的形式,每一个点都会精确达到即使条件已经满足。
(6)如果“WAIT FOR”指令选择CONT模式,你们条件将会被前置判断,如果条件满足,那么就会采用逼近方式。
[机器人]
星战BB-8机器人之父再度发力 推出多功能编程机器人
据悉,来自科罗拉多州的互联玩具公司Sphero已经成功完成了BB-8器人的研发,该机器人可由智能手机所控制。目前,Sphero在Kickstarter上发起众筹活动。 联合创始人兼首席创意官Adam Wilson表示,该公司选择众筹其最新机器人RVR,是为了“获得反馈,确保我们正在打造人们想要的产品。”RVR同时针对儿童和成人设计。与之前的产品不同,这款机器人可以通过其通用扩展端口接收外围设备,这意味着像树莓派、网络摄像头、Arduino微控制器、外部电池或其他用户想要连接的设备都可以被用于编程项目。 此外,RVR还内置了多种传感器,包括颜色传感器、加速度计、环境光线传感器、红外线传感器、磁力计和陀螺仪。它还拥有10个可单独寻址的
[机器人]
ARM汇编编程基础之一 —— 寄存器
ARM的汇编编程,本质上就是针对CPU寄存器的编程,所以我们首先要弄清楚ARM有哪些寄存器?这些寄存器都是如何使用的? ARM寄存器分为2类,普通寄存器和状态寄存器 寄存器类别 寄存器在汇编中的名称 各模式下实际访问的寄存器 用户 系统 管理 中止 未定义 中断 快中断 通用寄存器和程序计数器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq R9(SB,v6) R9 R9_fiq R10(S
[单片机]
单片机编程中关于堆栈的一些问题
编译器在生成代码使用两个堆栈:一个是用于子程序调用和中断操作的硬件堆栈,一个是用于以堆栈结构传递的参数临时变量和局部变量的软件堆栈。硬件堆栈是从数据内存的顶部开始分配的,在硬件堆栈下面再分配一定数量的字节作为软件堆栈。硬件堆栈和软件堆栈均为向下生长型的堆栈(注意:这与51单片机相反)。 通常如果你的程序没有子程序调用也不调用象带有%f 格式的printf()等库函数,那么默认的16 字节应该在大多数的例子中能良好工作。在绝大多数程序中除了很繁重的递归调用程序再入式函数,最多40 个字节的硬件堆栈应该是足够的。 如果函数的调用层次太深,有可能会发生硬件堆栈溢出到软件堆栈中,改变了软件堆栈中数据的内容,同样,当定义了太多的局部变量
[单片机]