Avr studio Invalid Opcode

Bear John Grills bear.j.grills@gmail.com
Středa Duben 8 16:09:49 CEST 2009


Zdravím..
Potrebuji vytvorit citac na 4 segmentovky.. zvladam, ale na jedne veci 
jsem se zasekl.. Procesor atmega16 prostredi avr studio 4.15. Kód 
programu následující (omlouvám se předem za dlouhý příspěvek).
Poblém je vtom, jakmile odkrokuju program ke smičce, šipečka ukazující 
na "aktivní" řádek zmizí. Mimojiné dostanu ihned po spuštění debuggeru 
hlášky typu Invalit opcode. Nemůžu již dva dny přijít na to čím to je..
Ví někdo? Nevím, jestli to může být špatně nastaveným stack-pointerem?

Díky, Bear

#include "avr/io.h"
#include <avr/interrupt.h>
#include <stdio.h>

int counter; // pocitadlo

int main() {
   // nastaveni
   // ------------
   // spolecne anody

   #define display_anodes_offset 3 // bitovy posun na portu
   #define display_anodes_port PORTD
   #define display_anodes_ddr DDRD

   display_anodes_ddr = (1<<DDD3|1<<DDD4|1<<DDD5|1<<DDD6); // nastaveni 
jako vystup
   display_anodes_port = (1<<PD3|1<<PD4|1<<PD5|1<<PD6);

   // data pro segmenty
   // ------------
   #define display_bus_port PORTA
   #define display_bus_ddr DDRA

   display_bus_ddr = 0xFF; // nastaveni jako vystup
   display_bus_port = 0x00;

   // nastaveni external interrupt
   // ------------
   // doporucuje se vynulovat ddr a port
   // tady se to muze napsat rovnou bez pouziti #define

   DDRD &=~(1<<DDD2);
   PORTD &=~(1<<PD2);

   //  externi preruseni je aktivni pri akci na pinu INT0
   MCUCR |= 0x3; // nastaveni akce pri nabezne hrane signalu na INT0
   GICR |= 1<<INT0; // pokud je v tomto registru nastaven 6. bit
                    // + I je aktivni v SREG, externi preruseni je zapnuto.
       // SMYCKA
   // ------------      while(1) {
       // pokusne
       counter = counter + 1;
       counter = counter + 2;
   }
}

SIGNAL(SIG_INTERRUPT0) { // sem skoci program counter pri externim 
preruseni
   counter++;
}


Hlášky , když spustím debugger..


Loaded plugin STK500
Loaded plugin AVR GCC
Loaded partfile: C:\Program Files\Atmel\AVR 
Tools\PartDescriptionFiles\ATmega16.xml
gcc plug-in: Output directory H:\!!AAPROJECTS\citac2\default\ does not 
exist
gcc plug-in: Created directory H:\!!AAPROJECTS\citac2\default\
AVR Simulator: Please wait while configuring simulator...
AVR Simulator: ATmega16 Configured OK
AVR Simulator: Invalid opcode 0xffff at address 0x001c00
Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
AVR Simulator: Invalid opcode 0xffff at address 0x001c00
Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
AVR Simulator: Invalid opcode 0xffff at address 0x001c00
Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
AVR Simulator: Invalid opcode 0xffff at address 0x001c00
AVR Simulator: Invalid opcode 0xffff at address 0x001c00
AVR Simulator: Invalid opcode 0xffff at address 0x001c00
Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
AVR Simulator: Invalid opcode 0xffff at address 0x001c00
AVR Simulator: Invalid opcode 0xffff at address 0x001c00
Loaded objectfile: H:\!!AAPROJECTS\citac2\default\citac2.elf
AVR Simulator: Invalid opcode 0xffff at address 0x001c00



Další informace o konferenci Hw-list