(教程4) LGT的头文件(原AVR代码,仅需要修改头文件就改成LGT)
我之前编写的范例: (教程2).LGT编程、编译、烧录、仿真的第一个范例:流水灯,熟悉AVR的人应该会狂喜: 下面的代码除了 #include <iolgt8f0xa.h> 这句头文件指向LGT外, 其它的所有语句,100%是与AVR相同的。
也就是说,AVR的代码,只需要修改一句头文件,就能立即应用于LGT上。
本文描述LGT的头文件及其使用方法。
LGT芯片LGT8F08A 的头文件 iolgt8f0xa.h, 只有88行。 有兴趣的网友可以细读。它的寄存器位置等与 ATmega164P 是完全一致。#ifndef __iolgt8f0xa_h
#define __iolgt8f0xa_h
/* GUID */
#define GUID3 (*(volatile unsigned char *)0xF6)
#define GUID2 (*(volatile unsigned char *)0xF5)
#define GUID1 (*(volatile unsigned char *)0xF4)
#define GUID0 (*(volatile unsigned char *)0xF3)
/* Power Management */
#define PMCR (*(volatile unsigned char *)0xF2)
#defineRC16MEN 0
#defineRC1KEN 1
#defineOSCMEN 2
#defineCFDS 4
#defineEXTMSEL 5
#defineLFEN 6
/* RTC */
#define RTCNTH (*(volatile unsigned char *)0xD7)
#define RTCNTM (*(volatile unsigned char *)0xD6)
#define RTCNTL (*(volatile unsigned char *)0xD5)
#define RTCTOPH (*(volatile unsigned char *)0xD4)
#define RTCTOPM (*(volatile unsigned char *)0xD3)
#define RTCTOPL (*(volatile unsigned char *)0xD2)
#define RTCISR (*(volatile unsigned char *)0xD1)
#defineIEN 0
#define IF 1
#defineWKUF 7
#define RTCSR (*(volatile unsigned char *)0xD0)
#definePOWOFF 0
#define EN 1
#defineCWEN 2
#definePWEN 3
#defineLOAD 4
#defineWREN 7
/* ADC */
#define ADTM (*(volatile unsigned char *)0x7D)
#defineADCTM2 2
#defineADCTM1 1
#defineADCTM0 0
/* Oscillator Calibration Register */
//#define OSCCAL (*(volatile unsigned char *)0x66)
#definePRESETN 6
#defineOSCCAL5 5
#defineOSCCAL4 4
#defineOSCCAL3 3
#defineOSCCAL2 2
#defineOSCCAL1 1
#defineOSCCAL0 0
/* MCU Control */
//#define MCUCR (*(volatile unsigned char *)0x55)
#defineSWDD 7
/* MCU Status */
#define MCUCSR (*(volatile unsigned char *)0x54)
#defineSWRF 5
#defineOCDRF 4
#defineJTRF 4
#defineWDRF 3
//#defineEXTRF 1
//#definePORF 0
/* EEPROM */
#define EEDRH (*(volatile unsigned char *)0x49)
//#define EECR (*(volatile unsigned char *)0x3F)
#define EEPEN 7
/* GTCCR */
//#define GTCCR (*(volatile unsigned char *)0x43)
#definePSR10 0
/* Interrupt Vector Numbers */
#define iv_RTC 28 // for iccavr
#define RTC_vect _VECTOR(27)
#define SIG_RTC_READY _VECTOR(27)
/* */
#endif
这里也提供该头文件的下载:
FOR WINAVR
1. iolgt8f0xa.h是库头文件io.h和iomxx4的补充, 它定义了LGT8F0XA所特有的寄存器和中断向量.
2. 在工程中同时包含头文件io.h和iolgt8f08xa.h就可包所有LGT8F08XA的寄存器和中断向量定义,
(iomxx4.h在io.h中根据MCU型号自动包含).
FOR ICCAVR
1. iolgt8f0xa.h是库头文件iom164v.h的补充, 它定义了LGT8F0XA所特有的寄存器和中断向量.
2. 在工程中同时包含头文件iom164v.h和iolgt8f08a.h就可包所有LGT8F08XA的寄存器和中断向量定义.
附录:GCC 里头文件的使用方法。
GCC里的前面两句话是:
#include <io.h> // GCC的标准io.h
#include <iolgt8f0xa.h> // LGT的头文件
当然,你需要先配置好GCC里的 include directories , 这个范例已经有详细描述 (教程2).LGT编程、编译、烧录、仿真的第一个范例:流水灯,
进入菜单 Project ---> Configuration Options
General 选项中,唯一需要芯片的是芯片选 ATmega164P, 这点非常重要,不要选错,因为这一款LGT芯片(LGT8F08A)的寄存器位置是与 ATMEGA164P 相同的。
检查一下(教程1)中描述的 Include Direcories 是否配置好
好消息,沙发? 这要好好学下 简单找个工程试了下,直接通过编译哈哈。
(请无视那个warning){:lol:} 编译器兼容的mcu,好哈。 莫大每个教程都是简明易懂,哈哈{:lol:} 只能说十分给力,就等着莫大的LGT上市了 不过貌似这款芯片的休眠电流有些高了,10ua,我们实验室都是用MSP430的,做的都是极端的低功耗产品 JoshuaAstray 发表于 2012-4-16 17:42 static/image/common/back.gif
不过貌似这款芯片的休眠电流有些高了,10ua,我们实验室都是用MSP430的,做的都是极端的低功耗产品 ...
ls我虽然也是用430的,不过不管你有多少量你都不可能在这个价位上拿到吧?价格差5被,电流高5倍这没什么的! 持续关注 呵呵,在实验室做的,不会管那么多,我们实验室是国家补贴做一些智能化的农业设备捐给一些农村用的 谢谢,我已经买了工具了。可以试一下 很是诱惑 回学校搞一套来玩玩 在校的大学生有什么优惠的政策吗??? z做个记号。下次用
这个很好,正想学习
LGT 这么好的教程,怎么没有人顶呢 期待它的频率,明天到货。更期待超频,哈哈。 mark...................
页:
[1]