avr can芯片使用

发布者:风暴使者最新更新时间:2015-07-09 来源: 51hei关键字:avr  can芯片 手机看文章 扫描二维码
随时随地手机看文章
#include
struct MOb
{
unsigned long id;
unsigned char data [8];
};
void can_init (void);
void can_tx (struct MOb msg);
void can_rx (struct MOb msg);
 
void can_init (void)
{
unsigned char i,j;
//reset CAN interface
CANGCON |= (1< baudrate
// bit timing -> datasheet 264 (check table)
// 250Kbps 16MHz cpu-clk
CANBT1 = 0x0E;//16M/8=2M
CANBT2 = 0x04;//3QT
CANBT3 = 0x13;//2+2=4
// clear CAN interrupt registers
CANGIE = 0; // none interrupts
CANIE1 = 0; // none interrupts on MObs
CANIE2 = 0;
CANSIT1 = 0;
CANSIT2 = 0;
//start CAN interface
CANGCON = (1<<1);
//wait until module ready
while (!(CANGSTA & (1<>8);
CANIDT2 = (unsigned char) (msg.id>>16);
CANIDT1 = (unsigned char) (msg.id>>24);
//put data in mailbox
for (i=0; i<8; i++)
CANMSG = msg.data [i];
//enable transmission
CANCDMOB |= (1<> 5);
CANIDT2 = (unsigned char)(msg.id >> 13);
CANIDT1 = (unsigned char)(msg.id >> 21);
// set mask in order to receive only the message with the ID
CANIDM4 = 248;
CANIDM3 = 255;
CANIDM2 = 255;
CANIDM1 = 255;
// enable extended ID
CANIDM4 |= (1<>= 3;
}
关键字:avr  can芯片 引用地址:avr can芯片使用

上一篇:我的电脑串口控制继电器,终于成功了!
下一篇:基于单片机的温度水位远程测控系统

推荐阅读最新更新时间:2024-03-16 14:24

一种采用AVR单片机的天然气发动机系统设计
1 燃料供给系统   对原机的改造主要是燃料供应及喷射系统的改造,用一套完整的天然气供给系统和电控系统来实现改造目的。所使用的天然气是由高压气瓶(CNG)提供的压缩天然气, 出口压力达到20 MPa。图1所示为供气系统示意图。该设计实现了高压天然气的可靠存储和压力转换,并可对供气压力进行实时监测 。 图1 CNG供气系统示意图   2 电控单元   电控单元选用Atmel公司的AVR单片机,利用单片机C语言进行程序开发,并且采用了多片式ECU设计。   (1) 多片式ECU 图2 多片式ECU结构简图   多片式ECU是指在一个电控单元ECU中使用多个单片机(MCU)。各个MCU分别承担不同的工作内
[单片机]
一种采用<font color='red'>AVR</font>单片机的天然气发动机系统设计
ATmega168 减少功耗的方法
试图降低AVR 控制系统的功耗时需要考虑几个问题。一般来说,要尽可能利用睡眠模式,并且使尽可能少的模块继续工作。不需要的功能必须禁止。下面的模块需要特殊考虑以达到尽可能低的功耗。 模数转换器 使能时, ADC 在所有休眠模式下都继续工作。为了降低功耗,在进入休眠模式之前需要禁止 ADC。重新启动后的第一次转换为扩展的转换。详见 P217“ 模数转换器” 。 模拟比较器 ATmega168在 ADC 噪声抑制模式下也是如此。在其他休眠模式模拟比较器是自动关闭的。如果模拟比较器使用了内部电压基准 源,则不论在什么休眠模式下都需要通过程序来关闭它。否则内部电压基准源将一直使能。请参见 P214“模拟比较器”以了解如何配置模拟比较器。 掉
[单片机]
AVR单片机PWM产生
计数器的上限值决定了 PWM 的频率,比较匹配寄存器的值决定了占空比的大小 下面是一个用t0产生PWM的例子 #include avr/io.h #include avr/interrupt.h int main(void) { DDRA=0XFF; DDRB=0XFF; PORTA=0XFF; PORTB=0X00; TIMSK=0X00; TCNT0=0; OCR0=240; TCCR0=0B01101001; while(1); }
[单片机]
AVR单片机入门系列(17)AVR IO输入之矩阵按键扫描程序
系统功能 使用AVR扫描4*4矩阵按键,一旦扫描到按键被按,做出被按的按键号指示。 硬件设计 关于AVR的I/O结构及相关介绍详见Datasheet,这里仅对作部分简单介绍,下面是AVR的I/O引脚配置表: AVR I/O 口引脚配置表 DDRXn PORTXn PUD I/O 方式 内部上拉电阻 引脚状态说明 0 0 X 输入 无效 三态(高阻) 0 1 0 输入 有效 外部
[单片机]
<font color='red'>AVR</font>单片机入门系列(17)<font color='red'>AVR</font> IO输入之矩阵按键扫描程序
P80C592芯片在基于CAN总线显示通信模块中应用
摘要:PHILIPS公司的P80C592芯片是P8X592的无片内ROM版本,该芯片是现有P8XC522和Philips CAN控制器PCA82C200的功能相结合的产物。文中介绍了P80C592在开发基于CAN总线的显示通信模块中的应用方法。 关键词:CAN总线 显示通信模块 P80C592 1 P80C592芯片简介 P80C592是PHILIPS公司采用先进的COMS工艺制造的高性能8位单片机。该单片机的指令集与80C51 完全兼容,但在80C51标准特性的基础上又增加了一些对于应用具有重要作用的硬件功能。P80C592是P8XC592的无片内ROM版本,是现有P8XC522和Philips CAN控制器PCA82C2
[工业控制]
基于AVR单片机的125 kHz简易RFID阅读器设计
0 引言 无线射频识别(Radio Frequency IdentifICation,RFID)是利用感应、电磁场或电磁波为传输手段,完成非接触式双向通信、获取相关数据的一种自动识别技术。该技术完成识别工作时无须人工干预,易于实现自动化且不易损坏,可识别高速运动物体并可同时识别多个射频卡,操作快捷方便,已经得到了广泛的应用。 目前存在的一些读卡器,都需要读卡芯片作为基站,成本较高。本文介绍了一种采用分立元件构成的125 kHz RFID阅读器,电路结构简单,成本极低,用于读取EM4100型ID卡。 1 RFID系统的分类 RFID系统的分类方法有很多,在通常应用中都是根据频率来分,根据不同的工作频率,可将其分为以下四种
[单片机]
基于<font color='red'>AVR</font>单片机的125 kHz简易RFID阅读器设计
AVR开发 Arduino方法(六) 内存子系统
Arduino UNO R3主处理器ATMega328P的芯片内部拥有3种存储器:数据存储器,程序存储器和电可擦写可编程存储器;它们各自有不同的用途。 1.数据存储器 数据存储器是一块2KB大小的静态随机存储器(SRAM)。其中一部分空间分配给了通用寄存器和I/O寄存器,其余部分一般用于存储全局变量,堆栈数据和支持动态内存分配。它的存取速度快,但掉电后数据会丢失。 2.程序存储器 程序存储器是一块32KB大小的闪存(Flash),其中0.5KB用于引导程序。它可以多次擦写,掉电后数据不会丢失,一般用于存储程序。 3.电可擦可编程只读存储器 电可擦写可编程只读存储器(EEPROM)是一块1KB大小的独立数据存储空间。它和程序存储器一
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved