Avr studio Invalid Opcode

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


Ještě dodatek, chybi tam take .. "sei();".. na co člověk nezapomene..
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