B001-Atmega16-综合
文章平均质量分 72
Manon_des_sources
归于简单.还原事物直白的一面.
展开
-
B001-Atmega16-带电复位后不清0的.noinit变量
AVR中、保存在.bss段的变量在芯片启动的.init4阶段会被清0,但是定义在.bss的.noinit段中的变量在.init4阶段不会被清0。单片机不掉电复位后,.noinit段的这些变量的值依然存在,可以继续使用。主要内容:利用这个特性可以测得复位次数。进而可以测试WDT复位和BOD复位。原创 2016-05-30 11:43:58 · 1514 阅读 · 0 评论 -
B001-Atmega16-PORTA的定义-(ques=1)
在iom16.h中定义了PORTA如下:#define PORTA _SFR_IO8(0x1B)接着在sfr_defs.h中定义了_SFR_IO8()如下:#if _SFR_ASM_COMPAT......#define _SFR_IO8(io_addr) ((io_addr) + __SFR_OFFSET)#define _SFR_IO16(io_addr) ((io_ad原创 2016-07-01 00:38:57 · 1202 阅读 · 0 评论 -
B001-Atmega16-汇编-地址空间分配
打开m16def.inc、可以看到如下面的定义,它和手册里面描述的ROM、RAM等的地址空间一一对应。同时、可以在DEBUG模式下看到SP指针是放在RAM的末尾,从最后面开始向下生长。原创 2016-08-23 06:51:18 · 1169 阅读 · 0 评论 -
B001-Atmega16-中断(GCC-AVR)-(ques=3)
GCC-AVR下的中断的写法和需要注意的地方主要内容:中断配置的步骤中断函数的一般定义定时器2中断实例伪中断的作用和测试原创 2016-06-15 16:28:48 · 1698 阅读 · 0 评论 -
B001-Atmega16-对齐模式和大小端
测试以确定Atmega16的对齐模式和大小端先贴出结果: - 小端模式 - 无对齐要求(1字节对齐)测试代码// 测试变量struct { uint8_t type0; uint16_t code0; uint8_t type1; uint16_t code1; uint32_t data;}code_data;uint32_t secon原创 2016-10-03 00:12:52 · 756 阅读 · 0 评论 -
A004-移位范围超过变量宽度-(ques=1)
今天的代码被警告说:left shift count >= width of type代码:typedef enum { MSG_WARNING_DELAYED = (1 << 30), MSG_WARNING_LOCKED = (1 << 31)}MSG_EVENT_TASK_WARNING;平台:AVR-GCC、Atmega16。搜索了下、最终确定是移原创 2016-10-16 22:59:32 · 981 阅读 · 0 评论 -
B001-Atmega16-位域的汇编实现
本文用于收集一些方法:位域的汇编实现目前收集到[1]种实现方法原创 2016-10-28 01:03:24 · 869 阅读 · 0 评论 -
B001-Atmega16-公共buffer管理器(静态)-(未开始)
有多个从机时、可以建立一个公共buffer管理器,来解决几个从机之间使用同一个buffer的问题,同时也为其他公共buffer解决共用问题,管理器的每个成员都是一个buffer,管理信息是这个buffer的当前用户、其他用户、使用状态。原创 2016-11-24 09:07:20 · 513 阅读 · 0 评论 -
D001-开发工具-AVR Studio 环境配置和使用笔记
AVR Studio 环境配置:1、编译连接类2、编辑类3、Debug类4、优化类5、警告类原创 2016-05-29 18:33:32 · 2597 阅读 · 0 评论