Joinj 发表于 2014-3-1 22:12:54

请教LGT8F88A 在IAR环境下使用的各种文件(.inc .ddf .sfr .xcl)

如题求LGT8F88A 在IAR环境下使用的各种文件(.inc .ddf .sfr .xcl),不知道官网上的8F0XA的文件是否适用于8F88A?
求指导!谢谢!如果有DEMO工程更好。

LGT 发表于 2014-3-2 10:57:36

用IAR开发LGT8F88A, 选择ATMega88作为目标器件就可以了。
如果使用到LGT8F88A特有的功能,源代码再包含特有寄存器定义的头文件即可:
LGT8F88A特有功能寄存器定义头文件(配合AVR/IO.H使用)

Joinj 发表于 2014-3-2 15:00:42

本帖最后由 Joinj 于 2014-3-2 15:59 编辑

LGT 发表于 2014-3-2 10:57
用IAR开发LGT8F88A, 选择ATMega88作为目标器件就可以了。
如果使用到LGT8F88A特有的功能,源代码再包含特 ...

我现在用的lgt8f88a_full.h这个头文件,没什么问题吧?刚刚发现PE0   PE2PE6三个IO口不能操作,PE1   PE3   PE4PE5能够正常操作,麻烦问一下 这几个口有什么特别么?   烧完程序后拔掉调试器   也还是无法操作。
另外(.inc .ddf .sfr .xcl)用MEGA88的默认文件就可以了对吧?

还有,调试时寄存器栏里找不到PORTE寄存器。

置位SWDD后PE0   PE2   可以操作了,但是PE6依旧不能操作····

看来是看PDF不够仔细啊····置位RVIO_EN后    PE6可以用了···

LGT 发表于 2014-3-2 17:45:52

Joinj 发表于 2014-3-2 15:00
我现在用的lgt8f88a_full.h这个头文件,没什么问题吧?刚刚发现PE0   PE2PE6三个IO口不能操作,PE1 ...

用lgt8f88a_full.h没有问题, 这里包含了全部的寄存器定义,不需要编译器提供的io.h了

Joinj 发表于 2014-3-2 18:44:55

LGT 发表于 2014-3-2 17:45
用lgt8f88a_full.h没有问题, 这里包含了全部的寄存器定义,不需要编译器提供的io.h了 ...
非常感谢!
顺便再问一下,IAR下LGT的中断说明头的格式是怎样的?

#pragma vector = TIMER0_OVF_vect
__interruptvoid TIMER0_OVF_Server(void)
{
    TCNT0 = 0xff;
    if(PORTD&0x10)
          PORTD &= 0xef;
      else
          PORTD |= 0x10;
}

编译器提示:
Error: identifier "_VECTOR" is undefined F:\MyWorkSpace\MyProjectLib\GraduationDesign\AutomaticTemperatureControl\AutomaticTemperatureControlProgramByIAR\User\main.c 48
Error: function call is not allowed in a constant expression F:\MyWorkSpace\MyProjectLib\GraduationDesign\AutomaticTemperatureControl\AutomaticTemperatureControlProgramByIAR\User\main.c 48

不知道怎么破了···

LGT 发表于 2014-3-3 17:42:16

本帖最后由 LGT 于 2014-3-3 17:58 编辑

Joinj 发表于 2014-3-2 18:44
非常感谢!
顺便再问一下,IAR下LGT的中断说明头的格式是怎样的?



官网上的lgt8f88a_full.h是给avr-gcc以及avr studio用的,系统里面有_VECTOR()宏定义;

IAR编译器里面没有这个, 你在lgt8f88a_full.h的前面定义一下这个宏就可以了:
#define _VECTOR(x)         x*2


为了避免和AVR-GCC混乱,建议将修改后的头文件改名:lgt8f88a_iar_full.h

Joinj 发表于 2014-3-3 20:37:38

本帖最后由 Joinj 于 2014-3-3 21:28 编辑

LGT 发表于 2014-3-3 17:42
官网上的lgt8f88a_full.h是给avr-gcc以及avr studio用的,系统里面有_VECTOR()宏定义;

IAR编译器里面没 ...

谢谢!
我在IAR下使用调试器时出现BUG,刚开始几次DEBUG还是正常的,后来就出现这个提示:
Mon Mar 03, 2014 20:20:12: Failed to read one or more register values (busy).
就再也不能用了,拔掉调试器   关掉IAR重新试都不得···
过一段时间,然后莫名其妙的又能用几次···然后就又只能当下载器用了···
是IAR编译器设置的问题么?

在一次DEBUG中出现:
Mon Mar 03, 2014 21:00:07: The stack pointer for stack 'CStack' (currently DATA:0x000000) is outside the stack range (DATA:0x000100 to DATA:0x000140)
Mon Mar 03, 2014 21:00:07: The stack pointer for stack 'RStack' (currently DATA:0x000000) is outside the stack range (DATA:0x000140 to DATA:0x000180)
之后就不能用了···好像是堆栈溢出?

我把CSTACK、RSTACK调大一倍再试也还不行。

发现用LGTMix_ISP下载一次后程序正常运行,然后再掉电一次, 就可以恢复正常了···但这样有点麻烦···

funnynypd 发表于 2014-12-15 03:18:11

>CSTACK、RSTACK调大一倍再试也还不行。

IAR AVR is poor in performance.
页: [1]
查看完整版本: 请教LGT8F88A 在IAR环境下使用的各种文件(.inc .ddf .sfr .xcl)