armok 发表于 2012-4-16 10:49:56

(教程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 是否配置好





plc_avr 发表于 2012-4-16 10:56:40

好消息,沙发?

zhuyeling 发表于 2012-4-16 13:43:06

这要好好学下

lxvtag 发表于 2012-4-16 14:11:13

简单找个工程试了下,直接通过编译哈哈。


(请无视那个warning){:lol:}

jetli 发表于 2012-4-16 14:19:47

编译器兼容的mcu,好哈。

lovewwy 发表于 2012-4-16 15:27:28

莫大每个教程都是简明易懂,哈哈{:lol:}

JoshuaAstray 发表于 2012-4-16 17:39:53

只能说十分给力,就等着莫大的LGT上市了

JoshuaAstray 发表于 2012-4-16 17:42:47

不过貌似这款芯片的休眠电流有些高了,10ua,我们实验室都是用MSP430的,做的都是极端的低功耗产品

jlhgold 发表于 2012-4-16 18:54:01

JoshuaAstray 发表于 2012-4-16 17:42 static/image/common/back.gif
不过貌似这款芯片的休眠电流有些高了,10ua,我们实验室都是用MSP430的,做的都是极端的低功耗产品 ...

ls我虽然也是用430的,不过不管你有多少量你都不可能在这个价位上拿到吧?价格差5被,电流高5倍这没什么的!

pang123hui 发表于 2012-4-16 19:01:59

持续关注

JoshuaAstray 发表于 2012-4-16 20:11:16

呵呵,在实验室做的,不会管那么多,我们实验室是国家补贴做一些智能化的农业设备捐给一些农村用的

鱼尾之恋 发表于 2012-4-19 11:56:20

谢谢,我已经买了工具了。可以试一下

songyu493 发表于 2012-4-20 23:56:14

很是诱惑 回学校搞一套来玩玩

f43 发表于 2012-7-25 17:46:24

在校的大学生有什么优惠的政策吗???

shiyingyifan 发表于 2012-9-2 15:09:14

z做个记号。下次用

dfzcx 发表于 2012-9-26 12:59:35

这个很好,正想学习
LGT

jyrpxj 发表于 2012-9-27 11:32:32

这么好的教程,怎么没有人顶呢

cumt_123456 发表于 2012-11-9 00:05:26

期待它的频率,明天到货。更期待超频,哈哈。

zl_123 发表于 2013-10-22 21:12:26

mark...................
页: [1]
查看完整版本: (教程4) LGT的头文件(原AVR代码,仅需要修改头文件就改成LGT)