Avr studio Invalid Opcode

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


To mi uniklo.. Děkuju, do smyčky už to vletí .. ,ale stejnak mi tam 
pořád vylítne ještě alespoň 10x invalid opcode.. nechápu to, mám to 
ignorovat?

Bear

Jan Smrz napsal(a):
> Promennou counter modifikujete v preruseni, je ji tedy potreba definovat
> jako volatile. Jinak je v danem kontextu odstranena prekladacem.
>
> J.S.
>
>
> Bear John Grills wrote:
>   
>> 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
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list@list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>   
>>     
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>   




Další informace o konferenci Hw-list