专题一 宏的使用技巧
1.1 常用的宏
1.2 几个宏的特殊用法
1.2.1 井号#
1.2.2 双井号##
1.2.3 取特定参数
1.2.4 将编译时间保存到目标代码中
1.2.5 编译版本号的问题
1.3 宏在AVR单片机中的应用
1.3.1 使用宏简化程序的移植
1.3.2 关于波特率计算时的四舍五入
1.3.3 使用宏检查串口波特率误差的方法
1.3.4 AVR单片机中定义的常数
1.4 使用宏管理IO
1.4.1 基本方法
1.4.2 改进的方法
1.4.3 跨平台的IO管理
1.5 使用宏时需要注意的问题
1.5.1 宏定义中的表达式
1.5.2 宏定义参数时需要注意的问题
专题二 编程技巧
2.1 函数和变量在Flash中的定位
2.2 软件定时器的使用
2.2.1 使用方法
2.2.2 简单示例
2.2.3 使用软件定时器的优缺点
2.3 多个中断共用一个中断服务程序
2.4 超长低功耗延时
2.5 CRC校验计算方法的比较
2.6 变量不自动初始化
2.7 不使用中断向量表
2.8 使用比较器做低成本高精度的ADC
2.8.1 原理
2.8.2 优缺点
2.8.3 参考例程1
2.8.4 参考例程2
2.9 使用查表法计算NTC热敏电阻的温度
2.9.1 原理
2.9.2 参考例程
2.10 使用内部基准计算电池电压
2.11 FreeRTOS
2.11.1 为什么使用FreeRTOS
2.11.2 FreeRTOS的3种版本
2.11.3 FreeRTOS的使用方法
2.11.4 参考例程
专题三 通信接口的使用技巧
3.1 USI接口的使用
3.1.1 USI的硬件结构
3.1.2 USI的控制寄存器
3.1.3 USI的中断
3.1.4 使用USI作为主I2C接口
3.1.5 使用USI作为主SPI接口
3.2 使用SPI驱动数码管
3.2.1 原理
3.2.2 参考例程
3.3 l-Wire的使用
3.3.1 基本总线信号
3.3.2 基本函数
3.3.3 参考例程
3.4 软件串口的使用
3.4.1 串口的时序
3.4.2 延时函数法
3.4.3 使用普通定时器产生半双工软件串口
3.4.4 利用定时器1产生全双工软件串口
……
专题四 AVRUSB的使用技巧
专题五 Bootloader
参考文献
展开