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