• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs Juli 2025.
    Thema: "Unscharf"

    Nur noch bis zum 31.07.2025 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
WERBUNG

DIY MultiTrigger - Intervall, HDR, Blitz, Lichtschranke, LZB, Strobo|LCD, Menüführung

Ich bin vor kurzen von meiner Sony Alpha auf die Nikon D800 umgestiegen.
Nun hab ich mir ein Fernauslösekabel bestellt, das hat einen 2,5 mm Klinkenstecker. Nun dachte ich das ich einfach ein 2,5 auf 3,5 mm Adapter draufstecke und das funktioniert. Will es aber nicht.
Ist das nicht auch der 10-Polige Anschluss wie hier auf dem oberen Bild: http://www.fotofreak.ch/2013/03/30/steuerkabel-pinbelegung-fur-nikon-d800-und-olympus-om-d/

Wenn ja, müsste das eigentlich so gehen, sofern der Kontakt gegeben ist. Was du bei Nikon aber nicht vergessen darfst, ist F+S in den Einstellungen zu aktivieren (=1). Nikon braucht generell Fokus und Shutter Signal gleichzeitig.
 
Nachdem ich auf dem Layout eine weitere fehlende Massebrücke gesetzt hab, war ich heute in der Lage das Hexfile zu flashen.

Lustigerweise zeigt mir das Display auf der ersten Zeile nur 8 volle Zeichen an. Jetzt ist die Frage, ob es evtl. nur ein Kontrastproblem ist und ich vorerst blind den Kontrast senken muss.

Oder ich habe Probleme, weil ich einen Atmega 168 verwende, welcher eigentlich pinkompatibel sein sollte. Nur dann ist die Frage, wie sich das mit deinem Hexfile verhält und ich evtl. es für den 168er neu compilen muss.

Wie sind denn die Fuses zu setzen? Ich habe nirgends einen Hinweis darauf gefunden.

PS: Bin aber schon Mal froh, dass er überhaupt ein Lebenszeichen von sich gibt. Hab mir paar Minuten den Kopf zergrübelt, bevor ich die Masseleitungen kontrolliert habe.

PPS: Zum Flashen nutze ich avrdude, aber das dürfte ja nicht das Problem sein:
Code:
avrdude -c usbasp -p m168 -u -U flash:w:MultiTrigger.hex
 

Anhänge

Zuletzt bearbeitet:
Super! Vielen Dank für die schnelle Hilfe!
Das war tatsächlich nicht der Stecker sondern die Einstellung bei F+S.

Super Service!
Ich freu mich schon auf das Nachfolgermodell!

Nochmal vielen Dank!

Laurentius
 
Habe soeben die Fuses kontrolliert:
Code:
ultrazauberer@ubuntu:~/Downloads/multitrigger$ sudo avrdude -c usbasp -p m168 -v -U lfuse:r:-:i 

avrdude: Version 5.10, compiled on Jun 29 2010 at 03:44:14
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/ultrazauberer/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/parport0
         Using Programmer              : usbasp
         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 : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9406
avrdude: safemode: lfuse reads as 62
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as 1
avrdude: reading lfuse memory:

Reading | ################################################## | 100% 0.00s

avrdude: writing output file "<stdout>"
:01000000629D
:00000001FF

avrdude: safemode: lfuse reads as 62
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as 1
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Wäre gut zu wissen, wie die Fuses sein sollten. Das Hexfile dürfte eigentlich so in den 168er ohne Anpassungen passen. :angel:
 
Oder ich habe Probleme, weil ich einen Atmega 168 verwende, welcher eigentlich pinkompatibel sein sollte. Nur dann ist die Frage, wie sich das mit deinem Hexfile verhält und ich evtl. es für den 168er neu compilen muss.
Der 168er ist nicht voll binär-kompatibel, z.B. sind die Interrupt-Vektoren beim 168er 2 Bytes breit, beim 48 und 88er nur 1 Byte.
Kompilieren musst du also auf jeden Fall neu (Optimierungen nicht vergessen zu aktivieren -O2)

Fuses müssten so aussehen (müsste beim 168er gleich sein denke ich)
 

Anhänge

  • 2013-08-28 19_50_10-AVRISP mkII (000200053100) - Device Programming.png
    Exif-Daten
    2013-08-28 19_50_10-AVRISP mkII (000200053100) - Device Programming.png
    69,9 KB · Aufrufe: 29
Zuletzt bearbeitet:
AW: DIY MultiTrigger - Intervall, HDR, Blitz, Lichtschranke, LZB, Strobo|LCD, Menüfüh

Die Fuses passen. :top: Dann werde ich mal fix den Compiler anschmeißen.

Was ist denn die aktuellste Firmware? Die ich da habe ist mit Version 1.04 gekennzeichnet.

Hallo Zusammen,

Nach längeren Zeit wollte ich wieder mit dem Multitrigger spielen. Angefangen habe ich jedoch Flaschen der 1.10 Firmware. Ich weiß nicht, was habe ich falsch gemacht, er geht nicht mehr, keine Anzeige, TOT. Programmiert habe ich mit Diamex AVR ISP Programmierer. Bitte um Hilfe

EOS-Poldi schreibt was von Version 1.10?

EDIT: Da ich bei µC mich auf der Linux-Schiene aufhalte: Ich sehe in deinem Projekt nirgends ein MAKEFILE. Mit welcher IDE hast du das Projekt entworfen? Stehe gerade bissl auf dem Schlauch, normalerweise kann ich im MAKEFILE alle Einstellungen, die compilerrelevant sind konfigurieren.
 
Zuletzt bearbeitet:
AW: DIY MultiTrigger - Intervall, HDR, Blitz, Lichtschranke, LZB, Strobo|LCD, Menüfüh

EOS-Poldi schreibt was von Version 1.10?
Genau 1.10 ist aktuell, siehe "Firmware Download" Link im Ausgangspost.


EDIT: Da ich bei µC mich auf der Linux-Schiene aufhalte: Ich sehe in deinem Projekt nirgends ein MAKEFILE. Mit welcher IDE hast du das Projekt entworfen? Stehe gerade bissl auf dem Schlauch, normalerweise kann ich im MAKEFILE alle Einstellungen, die compilerrelevant sind konfigurieren.
Ist ein Avr-Studio 4 Projekt. Kannst dir aber ja schnell selbst eins erzeugen.
Oder ohne Makefile müsste das so gehen:
Code:
avr-gcc *.c -O2 -DF_CPU=1000000 -mmcu=atmega168 -funsigned-char -funsigned-bitfields -O2 -ffunction-sections -fdata-sections -fpack-struct -short-enums -o multitrigger.elf
oder irgendwie so
 
Hallo Zusammen,

ich bin begeistert von dem DIY Multi Trigger und möchte ihn auf alle Fälle auch nach bauen. Leider bin ich nicht in der Lage Platinen zu ätzen, deshalb habe ich mal den ganzen Beitrag durchforstet und auf Seite 160 hatte CanumaXX eine n Plan der DIL Version des Triggers gepostet. Leider kann ich die links nicht erreichen.
Kann mir jemand einen Lochrasterplan wie z.B. von CanumaXX nochmal zur verfügung stellen oder schicken.

Oder kann mir jemand ne Bezugsquelle für schon geätzte Platinen nennen.

Merci im Voraus
Dominik
 
Merci Ultrazauberer,

leider ich wohne in der Haßloch in der Pfalz, das ist ein bissel weiter weg.
Aber wenn, du sowieso solch eine Platine äzt, dann kannst du mir eine mittmachen :D ? Löterfahrung hab ich, und SMD löten muss auch packbar sein.
Aber wenn noch jemand nen DIL Plan der Schlaltung hat wie der von CuramaXX kann er mir es gerne senden.

Gruß aus der Toskana Deutschlands
 
@ 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. :o

@ 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. :confused: 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. :o

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...
 

Anhänge

Zuletzt bearbeitet:
Die Warnings sind "normal". Sind meist nur signed <> unsigned probleme (casts vergessen).
Das mit dem error liegt an einem fehlenden const in der MultiTrigger.c
Code:
#ifdef PANA_ENC
	const int8_t table[16] PROGMEM = {0,0,-1,0,0,0,0,1,1,0,0,0,0,-1,0,0};
#elif defined ALPS_ENC
	[B]const [/B]int8_t table[16] PROGMEM = { 0,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0};
#endif

Dass das Display nichts (bzw. nur eine schwarze Zeile) anzeigt hat meist den Grund, dass die Datenpins nicht richtig kontaktiert sind. Bei den Pollin Buchsen für das LCD muss man etwas aufpassen. Die alten die ich hatte kann man nicht einfach umdrehen, da die Kontakte nur auf einer Seite sind und nicht auf beiden. Des weiteren kann ein falscher Lochabstand in der Platine dazu führen, dass die Kontakte in der Buchse nicht mehr gerade sind, so wie hier zu sehen: http://www.mikrocontroller.net/attachment/164239/Sockel.jpg
Oder natürlich kann es auch sein, dass der Kontakt auf der Unterseite der Platine nicht sauber ist (die Lötpads sind sehr klein). Auch ruhig mal schauen ob die Daten/Steuerpins am Atmel sauber verlötet sind (oder mal ein Foto von deiner Platine posten)
 
Danke für die schnelle Antwort!

Ich habe die Buchse mir mal genauer angesehen. Tatsächlich scheint jeder 2. Pin leicht versetzt zu sitzen. Siehe auch die Spuren am Flachbandkabel. Ich werde mal versuchen, die oberen Pins mit einer Nadel leicht nach unten zu drücken, oder hast du eine bessere Idee?

Achso, wo wird denn im Code definiert, welcher Drehencoder verwendet wird? Ich sehe da nur eine Bedingung, allerdings müsste man theoretisch ja den Code für den ALPS-Drehencoder bei mir compilen, richtig?

Anbei die Bilder:
 

Anhänge

Du hattest Recht, es war ein Kontaktproblem mit der Buchsenleiste. Ich habe die Pins mit einer Nadel mehr in die Mitte gebogen, jetzt zeigt der Trigger etwas an! :top:

Allerdings gibt es jetzt noch ein klitzekleines Problem: Mein Drehencoder geht pro Stellung 2 Menüpunkte weiter. Heißt also ich komme nur in die ungeraden Menüs: 1, 3, 5, ...

Wenn ich den Drehencoder ganz vorsichtig drehe, dass er genau in einer Mittelstellung steht und nicht eingerastet ist, komme ich in die anderen Menüs.

Ist das Problem bekannt?
 
Ich werde mal versuchen, die oberen Pins mit einer Nadel leicht nach unten zu drücken, oder hast du eine bessere Idee?
am besten dabei das Lötzinn an dem Pin verflüssigen, damit er am ende auch da bleibt. Wirklich verbiegen kannst du die Pins nicht mit so wenig Spiel. Ich habe ja immer andere Buchsen verwendet. Die haben zwar nur auf einer Seite die Kontaktpins (also nicht derdrehbar), dafür aber nicht das Problem von den Pollin-Buchsen (könnte dir auch welche schicken, habe noch 3 Stück: http://de.mouser.com/ProductDetail/FCI/HLW10S-2C7LF/?qs=1Qbx6cv8UfVPZDxJhJrKJg==

Achso, wo wird denn im Code definiert, welcher Drehencoder verwendet wird? Ich sehe da nur eine Bedingung, allerdings müsste man theoretisch ja den Code für den ALPS-Drehencoder bei mir compilen, richtig?
Jo, meist hat der ALPS eine andere Anzahl von Impulsen pro Rastung. Definiert ist das ganze in der sw_enc_drv.h
Daher auch dein Problem und genau deswegen ist es bereits im Quellcode vorgesehen dies zu ändern.
Allerdings gibt es jetzt noch ein klitzekleines Problem: Mein Drehencoder geht pro Stellung 2 Menüpunkte weiter. Heißt also ich komme nur in die ungeraden Menüs: 1, 3, 5, ...

Wenn ich den Drehencoder ganz vorsichtig drehe, dass er genau in einer Mittelstellung steht und nicht eingerastet ist, komme ich in die anderen Menüs.

Ist das Problem bekannt?
 
Zuletzt bearbeitet:
Hi MasterFX!

Vielen Dank für den Klasse Support! :D:top:

Jetzt funktioniert alles einwandfrei! Hätte mal selber suchen sollen. Hab jetzt extra eine komplette IDE in einer frischen WinXP-VM installiert. Scheint auch super zu klappen.

Jetzt bekomme ich Lust, dich beim MT2.0 zu unterstützen.

Ich habe mal das passende Hex-File für den Atmega168 und den ALPS-Drehencoder angehängt. Wenn das nicht ok ist, gib mir kurz Bescheid. ;)

https://www.dropbox.com/s/7ek13e2dfk3v4x6/MultiTrigger.hex
 
Wie lang hält denn normalerweise die Knopfzelle durch? Ich habe heute vielleicht 5 Minuten insgesamt am Gerät rumgespielt und die Spannung ist laut Menü merklich gesunken. Ich überlege die Knopfzelle durch 2x Micro Batterien ersetzen. ;)
 
Wie lang hält denn normalerweise die Knopfzelle durch? Ich habe heute vielleicht 5 Minuten insgesamt am Gerät rumgespielt und die Spannung ist laut Menü merklich gesunken. Ich überlege die Knopfzelle durch 2x Micro Batterien ersetzen. ;)
Also Dauerbetrieb mit aktiven Display 5 Tage halten. Dauerbetrieb mit Display aus etwa 15 Tage. Sleep etwa 2 Jahre.
Andere Batterien zu verwenden bleibt dir natürlich freigestellt. Wie gesagt in das Gehäuse passt auch ein kleiner Lipo mit rein (z.B von den kleinen Modellhubschraubern)
Das ganz am Anfang die Spannung recht schnell runtergeht ist relativ normal. Aber ab 3V müsste es schon recht stabil bleiben. Möglicherweise ist da noch irgendwo "ein kleiner" Kurzschluss oder so
 
Zuletzt bearbeitet:
@ MasterFX

Hallo ich versuche gerade eine Bascom Variante deines Triggers nachzubauen.
Ich hänge aber zurzeit an der Ladepumpe für das Display. Ich habe sie schon aufgebaut und kann eine Wechselspannung von 3 Volt zwischen ausgang 2te Diode und Masse messen. Aber bei Anschluss des Pollin displays ist aber kein Kontrast sichtbar. Die Schaltung ist momentan auf dem Steckbrett und funktioniert wenn ich 5V anschliese.
Mit welcher frequenz wird die Ladepumpe gespeist und ist diese Frequenz Kritisch?
Wie wird die änderung der intensität der Schrift durchgeführt, ändert sich da die Frequenz der Ladepumpe?

Grüße Dominik
 
Zuletzt bearbeitet:
Ich habe sie schon aufgebaut und kann eine Wechselspannung von 3 Volt zwischen ausgang 2te Diode und Masse messen.
Du müsstest eine negative Spannung von ~ -0.9V messen können. Ansonsten ist bei der Polung der Schottkys was falsch.

Mit welcher frequenz wird die Ladepumpe gespeist und ist diese Frequenz Kritisch?
Ich glaube das war so ~4 kHz
Wie wird die änderung der intensität der Schrift durchgeführt, ändert sich da die Frequenz der Ladepumpe?
Nein das Tastverhältnis der PWM
 
WERBUNG
Zurück
Oben Unten