热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

AVR之最简单外部中断、定时器0、定时器1程序

AVR之最简单外部中断、定时器0、定时器1程序2010-08-3011:39:15标签:avr休闲定时器
 AVR之最简单外部中断、定时器0、定时器1程序
2010-08-30 11:39:15
标签: avr  休闲  定时器  外部中断  职场
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://maoge.blog.51cto.com/2068224/385102
程序太简单啦,就不说啦,自己看吧
ATMEGA16用ICCAVR编译器
1、外部中断
#include 
#include  
unsigned  char temp=0x80; 
void main() 
{     
    DDRA=0xff; 
    GICR|=0x40; //使能外部INT0 
    MCUCR|=0x01; //INT0下降沿触发 
    SEI(); //总中断 
     while(1); 

#pragma interrupt_handler int0_isr:iv_INT0 
void int0_isr( void

    PORTA=temp; 
    temp=temp>>7|temp<<1; 

 
2、定时器0--普通模式
#include 
#include  
unsigned  char count; 
void main() 

     //TCCR0=0; 
  TCNT0=12; 
   //OCR0=244; 
  TCCR0=0x05; 
  TIMSK=0x01; 
  SEI(); 
  DDRA=0xff; 
  PORTA=0; 
   while(1); 

#pragma interrupt_handler Timer0:iv_TIMER0_OVF 
void Timer0() 

     TCNT0=12; 
     count++; 
     if(count==2) 
    { 
      PORTA=~PORTA; 
    count=0; 
    } 
}
3、定时器0--匹配模式
#include 
#include  
void main() 

     //TCCR0=0; 
  TCNT0=12; //设置计数初值,计数244后清零申请中断 
  OCR0=244; //从0计数到244,匹配申请中断 
  TCCR0=0x0d; //CTC模式,1024预分频 
  TIMSK=0x02; //使能输出比较匹配中断 
  SEI(); 
  DDRA=0xff; 
  PORTA=0; 
   while(1); 

#pragma interrupt_handler Timer0:iv_TIMER0_COMP 
void Timer0() 

     count++; 
     if(count==2) 
    { 
      PORTA=~PORTA; 
    count=0; 
    } 
}
4、定时器1
#include 
#include 
void main() 

    TCCR1A=0; //WGM11、10清零 
  TCCR1B=0; 
  TCNT1H=0x0b; 
  TCNT1L=0xdb; 
  TCCR1B=2; //WGM13、12清零,为普通模式,时钟选择CS02~00:8预分频 
    TIMSK=0x04; 
  SEI(); 
  DDRA=0xff; 
  PORTA=0; 
   while(1); 

#pragma interrupt_handler timer1:iv_TIMER1_OVF 
void timer1() 

     TCNT1H=0x0b; 
    TCNT1L=0xdb; 
    PORTA=~PORTA; 

本文出自 “依旧安静” 博客,请务必保留此出处http://maoge.blog.51cto.com/2068224/385102


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文介绍了在使用Visual Studio 2015进行项目开发时,遇到类向导弹出“异常来自 HRESULT:0x8CE0000B”错误的解决方案。通过具体步骤和实践经验,帮助开发者快速排查并解决问题。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
author-avatar
手机用户2502853355
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有