ucos 定时器中断_ii atmega128 外部中断 系统/硬件重启

资深工程师带你学Atmega128(内附50篇设计方案、开发笔记)-控制器/处理器-与非网
是ATMEL公司的 8位系列单片机的较高配置的一款单片机,稳定性极高,被广泛的应用在了汽车电车管理、门禁系统、遥控器、智能家居、以及计量电表等领域。
Atmega128A是AVR8位微处理器芯片,采用先进的RISC结构,采用AVR内核,拥有16MHz工作频率,工作电压为2.7-5.5V。
本文精选了Atmega128A教程、例程、设计案例,集结了国内外官方资料和资深工程师的经验,是学习Atmega128 MCU的必备宝典。
Atmega128A的功能框图
应用设计:
该智能越野车由电子狼团队自主研发,以Mega128为主控,Mega8为遥控。是操作过程中,可以通过无线遥控控制车体的运动,也可以由用遥控器发指令控制越野车进入自主巡航模式。
做的无线电子图书传输系统
本电子图书借阅系统主要由主系统和移动设备终端组成,每个移动设备都内置了一个ID号,用于与主系统连接。无线网络由nRF905搭建,实现点播式通讯,采用4字节地址寻址方式,即移动终端可带2的32次方台。
Atmega128学习笔记
介绍一款工业级的实用全功能控制器。该控制器能隔离采集多种输入信号,输出多种控制信号;具有实时时钟、历史数据存储功能,彩色液晶显示界面,带有触摸屏操作和远程通信接口。核心部分CPU采用AVR ATmega128单片机。
Atmega128单片机是一款应用很普遍的8位单片机,采用AVR的架构,学习入手之初总会希望找到一些相关的应用例程,从点亮一个二极管的LED开始,到数码管显示,再到AD/DA转换,再到定时器、计数器、中断,本篇文档涵盖了众多的应用例程,帮助大家学习。
学习AVR单片机将近一年时间了,收集了不少例程,梳理和总结一下了。一共有六本系统的例程,我将它们制作成了电子书,方便大家参考学习。
有了这些例程,相信学习AVR的朋友会少走不少弯路。
这是以ATMEGA128为例编写的C语言程序框架,做简单的修改即适合AVR所有单片机。可以说是一个单片机最简操作系统,希望各位同仁补充改进。
相关图书推荐
本书针对公司的AVR系列单片机和ImageCraft公司的ICC AVR开发环境,详细地介绍了AT90LS8535的C语言程序设计。
《AVR单片机应用开发指南及实例精解》结构清晰,由浅入深,通俗易懂,结合ATmega128单片机阐述AVR单片机的理论和工程应用。
Atmega系列相关产品的介绍(视频介绍)
Atmega系列是Atmel AVR产品的四大分支之一,应用广泛,可用于汽车、智能家居等领域
感谢Atmel技术社区资深网友的分享推荐,也欢迎大家到Atmel技术社区交流讨论Atmel相关技术问题!
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
Atmel Studio7与ASF教程
发表于: 14:09:15
半导体业购并风潮不断,但购并后的产品线与组织调整,才是购并后能否成功的关键。微芯(Microchip)在2016年4月完成对爱特梅尔(Atmel)的收购案,如今产品线整并计画已开始推动。由于双方原本的产品线就有相当大的互补性,因此微芯决定,双方原有的主力产品线都将原封不动,继续供应给客户。
发表于: 11:03:04
2016年以来,半导体行业的收购事件可以说是“完全停不下来”,为了抢占市场、扩大自身影响力,乃至提高国际地位,各大企业巨头大大小小的收购事件频传。
发表于: 10:39:44
Microchip的管理高层已经平息了大多数因为收购Atmel以及Micrel而产生的异议,不过在三块大陆上仍有零星的不满声音。
发表于: 08:40:06
中国上海,日 – 由全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案供应商Microchip Technology Inc.(美国微芯科技公司)(NASDAQ: MCHP)旗下子公司——Atmel,与京东智能(JD Smart)联合举办的“万物互联,安全无限”智能硬件创新设计大赛,近日完美落幕。
发表于: 20:46:00
两年前,AMD与天津海光先进技术投资有限公司(THATIC)达成协议,设立合资公司开发X86芯片。最新消息称,两者“联姻”后的首款X86处理器Dhyana(禅定)已启动生产。
发表于: 17:46:40
由芯片制造商海光(Hygon)负责制造的中国国产Dhyana(禅定)x86处理器开始启动生产。值得注意的是,这款芯片是根据AMD Zen微架构开发的。AMD将x86的IP授权给中国合作伙伴,Dhyana正是合作的结果。
发表于: 17:42:45
ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM也是单片机。
发表于: 17:35:56
格芯今日宣布,其22nm FD-SOI 技术的客户端设计中标收入已逾20亿美元。凭借在50多项客户端设计中的应用,22FDX无疑已经成为业界领先的低功耗芯片平台,可适用于各种发展迅速的应用,如汽车、5G 连接和物联网等。
发表于: 14:27:01
谈起集成电路产业,硅谷是一个经常被提及的地方。这个位于美国加利福尼亚州北部、旧金山湾区南部,长约25英里的谷地,是当今世界高科技产业最富盛名的地方。
发表于: 14:19:37
& 2010 - 2018 苏州灵动帧格网络科技有限公司 版权所有.
ICP经营许可证 苏B2-&ucosii操作系统下,exit中断跑飞
硬件:stm32f106vc
操作系统:ucosii
实现功能:按键中断
现象:配置完按键、中断后,进入中断死机。
原代码如下:
void EXTI0_IRQHandler(void)
delay_ms(10);
if(KEY3==1)
EXTI_ClearITPendingBit(EXTI_Line0);
跑飞如下:
void HardFault_Handler(void)
/* Go to infinite loop when Hard Fault exception occurs */
原因:没有在中断中加入操作系统有关语句。
修改程序如下后正常运行:
void EXTI0_IRQHandler(void)
OSIntEnter();
delay_ms(10);
if(KEY3==1)
EXTI_ClearITPendingBit(EXTI_Line0);
OSIntExit();
没有更多推荐了,502 Bad Gateway
502 Bad GatewayATmega128A的AD转换演示程序及详解--九叔出品 - AVR系列专区 - Microchip技术社区
后使用快捷导航没有帐号?
查看: 4528|回复: 8
ATmega128A的AD转换演示程序及详解--九叔出品
本帖最后由 南山九叔 于
21:47 编辑
开发环境:
& & IAR Embedded Workbench for Atmel AVR 6.12.1 + 自制Atmega128A最小系统 + LCD1602;
& & 时钟:外部晶振16MHz。
特别提示:
& & 1、IAR工程源文件包在附件中给出,下载后可以直接编译执行。
& & 2、实例中使用AVCC作为参考电压,精度不是很高且有噪声,为抑制噪声请在AREF引脚和GND引脚并联47uF左右和0.1uF的电容解耦;同时AVCC应该通过一个LC网络与数字电压源VCC连接。对于参考电压的选择,一般应用可以直接使用AVCC,分辨率和精度有要求的情况请使用稳定的外接参考电压(如TL431A)。这部分可参阅ATmega128A参考手册--“模拟噪声抑制技术”一节,ATmega128A的ADC经过软硬件细心调校,可以做的很准。
程序关键代码及详解:
/*******************************************************************************
Title: ADC演示程序
Brief:本实例演示如何使用Atmega128A的AD转换,实例中将ADC转换结果显示在LCD1602上。
& && & 实例中使用AVCC作为参考电压,精度不是很高且有噪声,为抑制噪声和提高稳定性请
& & & && & 在AREF引脚和GND引脚并联47uF左右和0.1uF的电容,高精度情况请使用外接参考电压。
F_OSC: 16MHz外部晶振
Author:南山九叔&&(www.smartmcu.cn)
Create Time: 17:16:12
IDE:IAR Embedded Workbench for Atmel AVR 6.12.1
*******************************************************************************/
#include &ioavr.h&
#include &intrinsics.h&
/* macro definition-----------------------------------------------------------*/
//参考电压(AREF与GND之间的实测电压,单位mV。本实例使用AVCC作为参考电压)
#define V_REF 4757
//位操作定义
#define BIT0 (0x0001u)
#define BIT1 (0x0002u)
#define BIT2 (0x0004u)
#define BIT3 (0x0008u)
#define BIT4 (0x0010u)
#define BIT5 (0x0020u)
#define BIT6 (0x0040u)
#define BIT7 (0x0080u)
//CPU主频
#define F_CPU UL
//延时函数宏定义
#define _NOP() __no_operation()
#define delay_ms(xms) __delay_cycles((unsigned long)(xms*(float)F_CPU/1000))
#define delay_us(xus) __delay_cycles((unsigned long)(xus*(float)F_CPU*/1000000))
/* public variables-----------------------------------------------------------*/
unsigned char voltage[3]; //缓存:用于放置AD转换结果
/* function prototype---------------------------------------------------------*/
void ADC_Init(void) ; //ADC初始化
unsigned short ADC_read(void); //读取AD转换结果
void display(unsigned short data); //将读回来的ADC值转换到缓存并且显示
/* 主函数(application-entry)--------------------------------------------------*/
int main(void)
{
& & /* LED指示灯初始化: LED&--&PB4 */
& & PORTB &= ~BIT4;
& & DDRB |= BIT4;
& & /* LCD1602 初始化: 详见附件bsp_lcd1602.c */
& & delay_ms(400);
& & BSP_Lcd1602_Configuration();
& & BSP_Lcd1602_Init();
& & BSP_Lcd1602_DisplayStr(0,0, &Hello, A Robot!&);
& & BSP_Lcd1602_DisplayStr(1,0, &DC:&);
& &
& & /* ADC初始化:选择通道、模式、参考电压和采样频率等,详见Atmega128A数据手册中ADC部分 */
& & ADC_Init();
& &
& & /* 大循环 */
& & while(1)
& & {
& && &&&PORTB ^= BIT4;
& && &&&delay_ms(500);
& && &&&/* 完成AD转换并显示 */
& && &&&display(ADC_read());
& & }
}
/*******************************************************************************
& & @brief: 将读回来的ADC值转换到缓存并且显示
& & @param: ADC寄存器值
*******************************************************************************/
void display(unsigned short ADCVAL)
{
& & long temp1;
& & /* 得到输入的实际电压值,右移10位相当于除以1024 */
& & temp1 = (V_REF * (long)ADCVAL) && 10;
& & voltage[2] = '0' + (unsigned char)( temp1 / 1000);
& & voltage[1] = '0' + (unsigned char)(temp1 % 1000 / 100);
& & voltage[0] = '0' + (unsigned char)(temp1 % 100 / 10 );
& & /* 显示到LCD1602 */
& & BSP_Lcd1602_DisplayChar(1,3, voltage[2]);
& & BSP_Lcd1602_DisplayChar(1,4, '.');
& & BSP_Lcd1602_DisplayChar(1,5, voltage[1]);
& & BSP_Lcd1602_DisplayChar(1,6, voltage[0]);
& & BSP_Lcd1602_DisplayChar(1,7, 'V');
}
/*******************************************************************************
& & @brief: ADC初始化设置: 通道0,自动转换
& & @param: None
& & @return: None
& & @note: 详见Atmega128A数据手册中ADC部分
*******************************************************************************/
void ADC_Init(void)
{
& & ADMUX = (1&&6); //ADC参考电压为AVCC,使用ADC0通道,单端输入模式
& & //16MHz主频下采样率125KSPS、连续转换模式,立即开始转换,不使用中断
& & ADCSRA = (1&&7) | (1&&6) | (1&&5) | (1&&2) | (1&&1) | (1&&0);
& & while(!(ADCSRA&0X40)); //等待转换结束,初始化阶段测试作用
}
/*******************************************************************************
& & @brief: 读取ADC转换结果
& & @param: None
& & @return: 转换结果
& & @note: 详见Atmega128A数据手册中ADC部分
*******************************************************************************/
unsigned short ADC_read(void)
{
& & while(!(ADCSRA&0X40)); //等待转换结束,初始化阶段测试作用
& & return ADC;
}复制代码
  程序的详细解释在代码中已经以注释的形式说明,如果有疑问的欢迎跟贴讨论。本文以基本的ADC应用来说明,更多更丰富的应用方式请参阅Atmega128A中文数据手册。
  使用NI DAQ USB-6251产生+3.3V直流电压,使用以上程序测量如下图所示。
3.3V直流电压源.png (22.6 KB, 下载次数: 8)
21:14 上传
测量显示结果.png (1.25 MB, 下载次数: 2)
21:13 上传
1、IAR Embedded Workbench for Atmel AVR 6.12.1下载:;
2、Atmega128A中文数据手册下载:
(3.02 MB, 下载次数: 140)
20:14 上传
点击文件名下载附件
3、本文示例代码的IAR工程源文件包:
(45.37 KB, 下载次数: 139)
20:40 上传
点击文件名下载附件
示例代码的IAR工程源文件包
九叔出品,必属精品,九叔,你的手机像素挺高的呀,目测至少1300万像素,哈哈
很好,谢谢九叔
谢谢沐沐支持!&
九叔出品,必属精品,九叔,你的手机像素挺高的呀,目测至少1300万像素,哈哈 ...
已经快被淘汰的iphone4S拍的,800W像素。说明我拍照技术好。
一个不小心,下载了九叔下载的东西。
九叔好难打出来啊,jiushu,出来的是救赎。
一个不小心,下载了九叔下载的东西。
九叔好难打出来啊,jiushu,出来的是救赎。 ...
多打几遍就是第一个了&&
看一下有需要资料
站长推荐 /5
经典AVR图书合集,23本!免费下载!
( ̄▽ ̄)~*φ(>ω<*) ?(?????)?ヾ(?°?°?)??
模拟实在是太太太难?那么,先把这些经典资料收集起来吧~会有一些帮助哒
PIC图书集合!基础原理、c语言、模块详解,超全书单任你选
新年大礼包!官方视频/封装文件/文档/开源项目/图书,资料多多,收藏起来~ヾ(?°?°?)??
历年Microchip精英年会资料!高清PDF下载;对于想去年会而囿于环境限制的朋友们来说,是非常好的资料
&2018 Microchip Corporation
Tel: 3-8072
& 2010 - 2018 苏州灵动帧格网络科技有限公司 版权所有.
ICP经营许可证 苏B2-&
Powered byATmega128在开发应用中应注意的问题_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ATmega128在开发应用中应注意的问题
&&ATmega128在开发应用中应注意的问题.doc
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 ucos 定时器中断 的文章

 

随机推荐