一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: 倪大德
收起左侧

[avr] AVR入门不难----用CVAVR

  [复制链接]
 楼主| 发表于 2010-5-25 18:35 | 显示全部楼层
CVAVR是很方便,有好多现成的库函数可以用.但如果以后跨平台迁移时,这此函数会给移植带来麻烦.
cosine 发表于 2010-5-25 18:05 https://www.yleee.com.cn/images/common/back.gif



            确实如此!

         作为AVR入门,还是有它的特点!

        尤其是按装文件中有不少子程序,很适合学习和借用!
发表于 2010-6-9 09:58 | 显示全部楼层
C51刚开始学,AVR还是以后再说了
发表于 2010-7-30 00:56 | 显示全部楼层
就是写C代码,不知道效率如何?
发表于 2010-8-6 16:57 | 显示全部楼层
AVR还是以后再说了
发表于 2010-10-22 10:08 | 显示全部楼层
虽然用了函数库,给移植带来问题,但还是很喜欢CVAVR的风格,一直在用它!
 楼主| 发表于 2010-10-23 08:12 | 显示全部楼层
本帖最后由 倪大德 于 2010-10-23 08:25 编辑
虽然用了函数库,给移植带来问题,但还是很喜欢CVAVR的风格,一直在用它!
springvirus 发表于 2010-10-22 10:08 https://www.yleee.com.cn/images/common/back.gif


        ----------用CVAVR总觉有移植带来问题,实际并非完全如此-------------

        用CVAVR函数库编程,方便快捷。会有移植问题。但深入CVAVR后,有些完全可以用C自写函数库。移植也无问题。

只是与标准C兼容差一点而已!

以LCD为例:

//-----------------------------------------------------
//-----------------------------------------------------
#include <mega8.h>
#include <delay.h>
         
#define PORT_DATA PORTD
#define PIN_DATA  PIND
#define DDRX_DATA DDRD
#define PORT_SIG PORTB
#define PIN_SIG  PINB
#define DDRX_SIG DDRB
#define RS 5
#define RW 6
#define EN 7
#define ClearBit(reg, bit)       reg &= (~(1<<(bit)))
#define SetBit(reg, bit)         reg |= (1<<(bit))
//-----------------------------------------------------
void LcdWriteCom(unsigned char data)
{
  ClearBit(PORT_SIG, RS);
  PORT_DATA = data;  
  SetBit(PORT_SIG, EN);        
  delay_us(2);
  ClearBit(PORT_SIG, EN);
  delay_us(40);
}
//-----------------------------------------------------
void LcdWriteData(unsigned char data)
{
  SetBit(PORT_SIG, RS);        
  PORT_DATA = data;  
  SetBit(PORT_SIG, EN);        
  delay_us(2);
  ClearBit(PORT_SIG, EN);
  delay_us(40);
}
//-----------------------------------------------------
void InitLcd(void)
{
  DDRX_DATA = 0xff;
  PORT_DATA = 0xff;
  DDRX_SIG = 0xff;
  PORT_SIG |= (1<<RW)|(1<<RS)|(1<<EN);
  ClearBit(PORT_SIG, RW);
  delay_ms(40);
  LcdWriteCom(0x38);
  LcdWriteCom(0xf);  
  LcdWriteCom(0x1);  
  delay_ms(2);
  LcdWriteCom(0x6);  
}
//-----------------------------------------------------
void main( void )
{
  InitLcd();
  LcdWriteData('A');
  LcdWriteData('V');
  LcdWriteData('R');
  LcdWriteData('!');
  while(1);
}

main.rar (491 Bytes, 下载次数: 48)

lcd.JPG
发表于 2010-10-23 08:38 | 显示全部楼层
从不用库函数的人飘过
51-Keil,AVR-IAR、ICC,STM8-IAR,STM32-Keil、IAR,M051-Keil
发表于 2010-11-5 02:40 | 显示全部楼层
为了权限!努力!!!!
发表于 2010-11-28 11:08 | 显示全部楼层
http://hi.baidu.com/2vivifire/blog/item/178942ca3b1e6ff553664f46.html
发表于 2010-12-10 14:52 | 显示全部楼层
厉害厉害,几号上,慢慢学习

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-6-14 00:10 , Processed in 0.055477 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表