golddiamond 发表于 2005-6-27 21:26:49

马老师的书问题

我是AVR的初学者.

最近在练习马潮老师编写的<高档8位单片机...>4.4节的程序时:程序如下:



#include <iom128v.h>

#include <macros.h>

unsigned char time_2ms_ok;



void port_init(void)

{

   

   PORTA=0x00;

   DDRA=0xFF;



}



void timer0_init(void)

{

   

   TCCR0=0x00;

   ASSR=0x00;

   TCNT0=0x83;

   OCR0=0x7d;

   TCCR0=0x04;

   

   }

   

   #pragma interrupt_handler timer0_ovf_isr:17

   

   void timer0_ovf_isr(void)

   {

      

      TCNT0=0x83;

      time_2ms_ok=1;

   

}

      

void init_devices(void)

      {

         

         CLI();

         XDIV=0x00;

         XMCRA=0x00;//external memory

         port_init();

         

         MCUCR=0x00;

         EICRA=0x00;

         EICRB=0x00;

         EIMSK=0x00;

         TIMSK=0x01;

         ETIMSK=0x00;

         SEI();

                  

         }

         

         void main(void)

         {

            unsigned char point;

            init_devices();

            while(1)

            {

                if(time_2ms_ok)

                {

                   PORTA=1<<point;

                   if(++point>=8)

                   point=0;

                   time_2ms_ok=0;

               }

               

      }      

                  

                   }

在AVR STDIO中调试时,总也不进timer_0的中断,使用ATMEGA128芯片,软件仿真.而且.build 后是如下提示信息:

D:\iccv7avr\bin\imakew -f 123.mak

    iccavr -o 123 -g -ucrtatmega.o -bfunc_lit:0x8c.0x10000 -dram_end:0x10ff -bdata:0x100.0x10ff -dhwstk_size:40 -beeprom:1.2048 -fihx_coff -S2 @123.lk -lstudio -lcatmega

Device 0% full.

Done.

但是其它的例程(ICCAVR中的)build后出现如下信息:

D:\iccv7avr\bin\imakew -f 8515intr.mak

    iccavr -o 8515intr -g -Wl-W -bfunc_lit:0x22.0x2000 -dram_end:0x25f -bdata:0x60.0x25f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @8515intr.lk

Device 1% full.

Done.

大家看一看怎么回事呀.郁闷呀....

好象Device 0% full好象不对呀,怎么也应当有一些FLASH程序空间被使用呀

machao 发表于 2005-6-29 12:59:44

可能你的PROJECT中没有正确的设置所使用的芯片型号。

先按开发平台的要求,一步步的把PROJECT建立,最好使用平台提供的程序生成器。然后将你的程序帖入修改。
页: [1]
查看完整版本: 马老师的书问题