@ Dr._Nemesis:
Leider habe ich gerade nichts für mich zum Ätzen, auch muss ich meinen Arbeitsablauf für's Ätzen noch in den Griff bekommen, somit wird das mal eben nicht auf die Schnelle.
@ MasterFX:
Ich habe die Firmware in AVR Studio 4.18 compiled, mit Optimierungslevel -O2 und als Target den Atmega168. Ich bekomme beim compilen 25 Warnings, die aber auch schon da sind, wenn ich dein Projekt einfach nur öffne und ein Rebuild mache, deswegen denke ich, dass soweit die Warnungen normal sind.
Ich habe die Firmware eben auf den Multitrigger gespielt, leider zeigt das Display immer noch 8 voll gefüllte Zeichen an.

Die Status-LED blinkt kurz nach dem Anschalten auf. Nach einigen Sekunden geht das Display aus und danach blinkt die Status-LED aller 3 Sekunden. Sobald ich am Drehencoder drehe, geht das Display wieder an, zeigt aber immer nur noch die erste Zeile mit den vollen Zeichen.
Hast du eine Idee, woran das liegen könnte? Die Buchse für das Folienkabel habe ich auch von Pollin und die sieht etwas anders aus, als in der Anleitung beschrieben. Ich denke trotzdem, dass es die korrekte ist.
Einen Softwarefehler vom Compiling und vom Flashen schließe ich jetzt mal aus. Ich habe alle Verbindungen mehrfach überprüft und alle Fusebits ausgelesen, soweit passt das mit deinen Vorgaben. Zumal ich vermute, dass das Verhalten mit der Status-LED auch so korrekt ist.
Hier mal die Ausgaben von avrdude:
Code:
C:\WinAVR-20100110\bin>avrdude.exe -c avrisp2 -p m168 -P usb -v
avrdude.exe: Version 5.10, compiled on Jan 19 2010 at 10:45:23
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.c
onf"
Using Port : usb
Using Programmer : avrisp2
avrdude.exe: usbdev_open(): Found AVRISP mkII, serno: ULLIHOME.DE01
AVR Part : ATMEGA168
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
eeprom 65 5 4 0 no 512 4 0 3600
3600 0xff 0xff
flash 65 6 128 0 yes 16384 128 128 4500
4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500
4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500
4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500
4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500
4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0
0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0
0 0x00 0x00
Programmer Type : STK500V2
Description : Atmel AVR ISP mkII
Programmer Model: AVRISP mkII
Hardware Version: 1
Firmware Version Master : 2.10
Vtarget : 2.8 V
SCK period : 8.00 us
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.06s
avrdude.exe: Device signature = 0x1e9406
avrdude.exe: safemode: lfuse reads as 62
avrdude.exe: safemode: hfuse reads as DF
avrdude.exe: safemode: efuse reads as 1
avrdude.exe: safemode: lfuse reads as 62
avrdude.exe: safemode: hfuse reads as DF
avrdude.exe: safemode: efuse reads as 1
avrdude.exe: safemode: Fuses OK
avrdude.exe done. Thank you.
C:\WinAVR-20100110\bin>pause
Drücken Sie eine beliebige Taste . . .
Code:
C:\WinAVR-20100110\bin>avrdude.exe -c avrisp2 -p m168 -P usb -v -e -U flash:w:Mu
ltiTrigger.hex
avrdude.exe: Version 5.10, compiled on Jan 19 2010 at 10:45:23
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.c
onf"
Using Port : usb
Using Programmer : avrisp2
avrdude.exe: usbdev_open(): Found AVRISP mkII, serno: ULLIHOME.DE01
AVR Part : ATMEGA168
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
eeprom 65 5 4 0 no 512 4 0 3600
3600 0xff 0xff
flash 65 6 128 0 yes 16384 128 128 4500
4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500
4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500
4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500
4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500
4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0
0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0
0 0x00 0x00
Programmer Type : STK500V2
Description : Atmel AVR ISP mkII
Programmer Model: AVRISP mkII
Hardware Version: 1
Firmware Version Master : 2.10
Vtarget : 2.8 V
SCK period : 8.00 us
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.05s
avrdude.exe: Device signature = 0x1e9406
avrdude.exe: safemode: lfuse reads as 62
avrdude.exe: safemode: hfuse reads as DF
avrdude.exe: safemode: efuse reads as 1
avrdude.exe: erasing chip
avrdude.exe: reading input file "MultiTrigger.hex"
avrdude.exe: input file MultiTrigger.hex auto detected as Intel Hex
avrdude.exe: writing flash (9252 bytes):
Writing | ################################################## | 100% 14.52s
avrdude.exe: 9252 bytes of flash written
avrdude.exe: verifying flash memory against MultiTrigger.hex:
avrdude.exe: load data flash data from input file MultiTrigger.hex:
avrdude.exe: input file MultiTrigger.hex auto detected as Intel Hex
avrdude.exe: input file MultiTrigger.hex contains 9252 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% 13.03s
avrdude.exe: verifying ...
avrdude.exe: 9252 bytes of flash verified
avrdude.exe: safemode: lfuse reads as 62
avrdude.exe: safemode: hfuse reads as DF
avrdude.exe: safemode: efuse reads as 1
avrdude.exe: safemode: Fuses OK
avrdude.exe done. Thank you.
C:\WinAVR-20100110\bin>pause
Drücken Sie eine beliebige Taste . . .
Das sieht alles korrekt aus.
Hier noch die Ausgabe des Compilers. Ich vermute mal, dass da der Wurm drin steckt. Welche Version des avr-gcc nutzt du? Die letzte Version aus der aktuellen AVR-Toolchain kann ich nicht benutzen, da bekomme ich sofort einen Compilerfehler. Als Workaround habe ich herausgefunden, man soll eine vorhergehende Version von avr-gcc benutzen. Somit nutze ich die Toolchain von WinAVR, womit der Compiler durchläuft, allerdings 25 Warnings ausspuckt:
Code:
Build started 31.8.2013 at 15:10:31
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT MultiTrigger.o -MF dep/MultiTrigger.o.d -c ../MultiTrigger.
c
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT lcd_drv.o -MF dep/lcd_drv.o.d -c ../lcd_drv.c
../lcd_drv.c: In function 'lcd_putint':
../lcd_drv.c:104: warning: pointer targets in passing argument 2 of 'itoa' differ in signedness
../lcd_drv.c: In function 'lcd_put_aligned_int':
../lcd_drv.c:127: warning: pointer targets in passing argument 2 of 'itoa' differ in signedness
../lcd_drv.c:128: warning: pointer targets in passing argument 1 of 'lcd_text' differ in signedness
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT sw_enc_drv.o -MF dep/sw_enc_drv.o.d -c ../sw_enc_drv.c
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT camera_drv.o -MF dep/camera_drv.o.d -c ../camera_drv.c
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT timer_func.o -MF dep/timer_func.o.d -c ../timer_func.c
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT trigger_functions.o -MF dep/trigger_functions.o.d -c ../tri
gger_functions.c
../trigger_functions.c:40: warning: initialization discards qualifiers from pointer target type
../trigger_functions.c:40: warning: initialization discards qualifiers from pointer target type
../trigger_functions.c:40: warning: initialization discards qualifiers from pointer target type
../trigger_functions.c:40: warning: initialization discards qualifiers from pointer target type
../trigger_functions.c:40: warning: initialization discards qualifiers from pointer target type
../trigger_functions.c:105: warning: pointer targets in initialization differ in signedness
../trigger_functions.c:106: warning: initialization from incompatible pointer type
../trigger_functions.c: In function 'get_exposure_time':
../trigger_functions.c:464: warning: pointer targets in passing argument 1 of 'lcd_text' differ in signedness
../trigger_functions.c: In function 'func_interval':
../trigger_functions.c:528: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c:532: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c:541: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c:555: warning: pointer targets in passing argument 1 of 'lcd_text' differ in signedness
../trigger_functions.c: In function 'func_lzb':
../trigger_functions.c:608: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c:609: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c: In function 'func_flash':
../trigger_functions.c:737: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c:742: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c:779: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c: In function 'func_sound':
../trigger_functions.c:860: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c:886: warning: pointer targets in passing argument 2 of 'get_value_new' differ in signedness
../trigger_functions.c: In function 'func_ir_trig':
../trigger_functions.c:901: warning: pointer targets in passing argument 1 of 'lcd_text' differ in signedness
../trigger_functions.c: In function 'func_trig':
../trigger_functions.c:914: warning: pointer targets in passing argument 1 of 'lcd_text' differ in signedness
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT adc_drv.o -MF dep/adc_drv.o.d -c ../adc_drv.c
../adc_drv.c: In function 'adc_show_and_get_val':
../adc_drv.c:89: warning: 'val' may be used uninitialized in this function
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT IR_drv.o -MF dep/IR_drv.o.d -c ../IR_drv.c
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT signal.o -MF dep/signal.o.d -c ../signal.c
avr-gcc -mmcu=atmega168 -Wl,-Map=MultiTrigger.map MultiTrigger.o lcd_drv.o sw_enc_drv.o camera_drv.o timer_func.o trigger_functions.o adc_drv.o IR_drv.o signal.o -o MultiTrigger.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature MultiTrigger.elf MultiTrigger.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex MultiTrigger.elf MultiTrigger.eep || exit 0
avr-objdump -h -S MultiTrigger.elf > MultiTrigger.lss
AVR Memory Usage
----------------
Device: atmega168
Program: 9252 bytes (56.5% Full)
(.text + .data + .bootloader)
Data: 198 bytes (19.3% Full)
(.data + .bss + .noinit)
Build succeeded with 25 Warnings...
Im Anhang noch die geänderten Projekt-Settings.
Hier noch die Versionen von avr-gcc. Die neuen Versionen compilen dein Projekt leider gar nicht. :-(
Code:
C:\WinAVR-20100110\bin>avr-gcc.exe --version
avr-gcc.exe (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\Programme\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain
\bin>avr-gcc.exe --version
avr-gcc.exe (AVR_8_bit_GNU_Toolchain_3.4.2_992) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\Programme\Atmel\AVR Tools\AVR Toolchain\bin>avr-gcc.exe --version
avr-gcc.exe (AVR_8_bit_GNU_Toolchain_3.4.2_939) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Der Volltsändigkeit halber noch die Ausgaben mit dem avr-gcc Compiler aus der Atmel Toolchain (siehe Bild Nr. 3 und folgenden Code):
Code:
Build started 31.8.2013 at 15:31:59
avr-gcc -mmcu=atmega168 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -O2 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT MultiTrigger.o -MF dep/MultiTrigger.o.d -c ../MultiTrigger.
c
../MultiTrigger.c:173:9: error: variable 'table' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
make: *** [MultiTrigger.o] Fehler 1
Build failed with 1 errors and 0 warnings...