[Test] A495 Firmware-Version 1.00d und 1.00f

A4xx, A5xx, A6xx, A7xx, A8xx, A1xxx, A2xxx, A3xxx, A4xxx

Re: A495 Firmware-Version 1.00d und 1.00f

Beitragvon srsa.4c » 17.01.2012, 04:24

Hallo, elexx.

elexx hat geschrieben:Ja, die Kamera benimmt sich mit "Deiner" DISKBOOT.BIN etwas anders, als sonst - auch wenn Skript-Autostart ausgeschalten ist. Die Funktion, die erscheint (im Wiedergabemodus mehrere Bilder/Filme überspringen), habe ich bisher in der normalen Bedienung noch nicht gefunden, es hat aber irgendetwas mit der [>]-Taste zu tun. Im CHDK-Handbuch steht, die [>]-Taste schaltet in den ALT-Modus um - das tut sie auch - und die "normale" Funktion der Taste erreicht man durch längeres gedrückthalten. Das ist jetzt NICHT so, die [>]-Taste schaltet zwar in den ALT-Modus, "dahinter" erfolgen im Display aber auch Reaktionen der "normalen" Bedienfunktion. Gerade habe ich noch feestgestellt: Beim längeren Drücken der [>]-Taste stürzt die Kamera ab. Oder geht sie aus, weil das eine gewollte Funktion ist? Das kann ich gerade nicht auseinanderhalten.

Sehen wir:
Die Initialisierung der Variablen (ich habe nichts anderes getan) kann nur den Start der Kamera beeinflussen.
Das lange Drücken der [>]-Taste bedeutet originale Funktion, es ist also ganz normal, das du damit die Kamera ausschaltest (das kann nur vorkommen wenn die Kamera in Play-Modus mit Objektiv drinn ist - es ist im original-Handbuch erwähnt).
Was du siehst ist meiner Meinung nach mehrere falschen Tastendrücke (die folgende Tasten sind spezial behandelt: UP/DOWN/LEFT/MENU), siehe Handbuch Seite 85.
Ich habe die Probleme mit diesem Modell im internazionalen Forum erwähnt. Es sieht ganz so aus, daß die Tastenbehandlung für die A490, A495 Modelle gefixt werden muß. Thread (englisch): http://chdk.setepontos.com/index.php?to ... 8#msg79948

Danke für das Log. Leider sind die falschen Tastendrücke nicht zu sehen, nur die Tatsache, wo der Absturz geschehen ist.

MfG.
srsa.4c
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 49
Registriert: 15.01.2012, 16:31
Kamera(s): a410, ...

Re: A495 Firmware-Version 1.00d und 1.00f

Beitragvon srsa.4c » 17.01.2012, 22:30

Hallo,

ich habe den Code ein wenig verändert. Ich würde gerne wissen, ob es damit besser geht oder nicht.
Syntax: [ Download ] [ Verstecken ]
Benutze Diff Syntax Highlighting
Index: platform/a495/kbd.c
===================================================================
--- platform/a495/kbd.c (revision 918)
+++ platform/a495/kbd.c (working copy)
@@ -160,6 +160,12 @@
 
 static void __attribute__((noinline)) mykbd_task_proceed()
 {
+   /* Initialize our own kbd_new_state[] array with the
+      current physical status. (inspired by the S90 port)
+      */
+   kbd_new_state[0] = physw_status[0];
+   kbd_new_state[1] = physw_status[1];
+   kbd_new_state[2] = physw_status[2];
    while (physw_run){
        _SleepTask(10);
Erstellt in 0.003 Sekunden, mit GeSHi 1.0.8.9
Weil ich diese Kamera nich habe, könnte mir jemand verraten, was für eine Nummer (hexadezimal) nach "PS3:" angezeigt wird wenn die folgende Einstellung aktiviert ist:
Verschiedene Einstellungen -> Debugging-Einstellungen -> Zeige verschiedene Werte
Diese Anzeige geht nur mit diesem Build (im Anhang, für 1.00f).

MfG.
Dateianhänge
CHDK-DE-a495-100f-1.1.0.zip
(202.65 KiB) 558-mal heruntergeladen
srsa.4c
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 49
Registriert: 15.01.2012, 16:31
Kamera(s): a410, ...

Re: A495 Firmware-Version 1.00d und 1.00f

Beitragvon elexx » 18.01.2012, 10:59

srsa.4c hat geschrieben:ich habe den Code ein wenig verändert. Ich würde gerne wissen, ob es damit besser geht oder nicht.
Weil ich diese Kamera nich habe, könnte mir jemand verraten, was für eine Nummer (hexadezimal) nach "PS3:" angezeigt wird wenn die folgende Einstellung aktiviert ist:


Hallo srsa.4c,
ja es geht besser. In einem ersten Test funktioniert der Skript-Autostart und die mit der ersten Testversion dabei im Hintergrund erschienene Wiedergabefunktion erscheint nichtmehr. Allerdings reagiert das kurze Drücken von [>] weiterhin mit 2 Funktionen gkleichzeitig: ALT und Sprung.

Die Anzeige bei PS3 wechselt schnell (vllt. 2/sec) zwischen folgenden Werten:
PS3: 0x401b1f4
PS3: 0x401d1f4
PS3: 0x40131f4

Dabei scheint in der sich ändernden Zahl irgendwie auch der Neigungssensor drinzustecken. Rechtshochkant gehalten wird die Ziffer auchmal zu "5", linkshochkant zu "a".
elexx
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 26
Registriert: 28.12.2011, 13:02
Wohnort: Werdau / Sachsen / Deutschland
Kamera(s): A495 (1.00f)

Re: A495 Firmware-Version 1.00d und 1.00f

Beitragvon srsa.4c » 18.01.2012, 17:29

Hallo elexx,

danke fürs Testen. Ich habe wieder was Neues, wie gefolgt:
Syntax: [ Download ] [ Verstecken ]
Benutze Diff Syntax Highlighting
Index: platform/a495/kbd.c
===================================================================
--- platform/a495/kbd.c (revision 920)
+++ platform/a495/kbd.c (working copy)
@@ -26,7 +26,19 @@
 #define KEYS_MASK0 (0x00020000)
 #define KEYS_MASK1 (0x00000000)
 #define KEYS_MASK2 (0x017001f4)
+#define KEYS_INV2 (0x01700000)
+/*
+the 4 button states residing in the upper half of physw_status[2] seem to be inverted
+to handle these correctly, their value needs to be inverted:
+- when reading from physw_status[2] to the state variables
+- when writing to physw_status[2] from the state variables
+KEYS_INV2 should be used for that
+SD_READONLY_FLAG and USB_MASK are not affected by this
 
+when idle, physw_status[2] looks like: "000001000000000xxxxx000111110100"
+                         KEYS_MASK2 is "00000001011100000000000111110100"
+*/
+
 #define SD_READONLY_FLAG (0x40000)
 #define USB_MASK (0x80000)
 #define USB_REG 2
@@ -160,6 +172,12 @@
 
 static void __attribute__((noinline)) mykbd_task_proceed()
 {
+   /* Initialize our own kbd_new_state[] array with the
+      current physical status. (inspired by the S90 port)
+      */
+   kbd_new_state[0] = physw_status[0];
+   kbd_new_state[1] = physw_status[1];
+   kbd_new_state[2] = physw_status[2] ^ KEYS_INV2;
    while (physw_run){
        _SleepTask(10);
       
@@ -222,7 +240,7 @@
    //_platformsub_kbd_fetch_data(kbd_new_state);
    kbd_new_state[0] = physw_status[0];
    kbd_new_state[1] = physw_status[1];
-   kbd_new_state[2] = physw_status[2];
+   kbd_new_state[2] = physw_status[2] ^ KEYS_INV2;
   
    if (kbd_process() == 0){
        // leave it alone...
@@ -230,7 +248,7 @@
         // override keys
         physw_status[0] = (kbd_new_state[0] | KEYS_MASK0) & (~KEYS_MASK0 | kbd_mod_state[0]);
         //physw_status[1] = (kbd_new_state[1] | KEYS_MASK1) & (~KEYS_MASK1 | kbd_mod_state[1]);
-        physw_status[2] = (kbd_new_state[2] | KEYS_MASK2) & (~KEYS_MASK2 | kbd_mod_state[2]);
+        physw_status[2] = ((kbd_new_state[2] | KEYS_MASK2) & (~KEYS_MASK2 | kbd_mod_state[2])) ^ KEYS_INV2;
    }
   
    //_kbd_read_keys_r2(physw_status);
@@ -280,7 +298,7 @@
 {
    kbd_mod_state[0] |= KEYS_MASK0;
    kbd_mod_state[1] |= KEYS_MASK1;
-   kbd_mod_state[2] |= KEYS_MASK2 & ~0x01700000;
+   kbd_mod_state[2] |= KEYS_MASK2;
 }
 
 long kbd_is_key_pressed(long key)
@@ -288,12 +306,7 @@
    int i;
    for (i=0;keymap[i].hackkey;i++){
        if (keymap[i].hackkey == key){
-           switch (keymap[i].hackkey) {
-           case KEY_UP: case KEY_DOWN: case KEY_LEFT: case KEY_MENU:
-               return ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0) ? 0:1;
-           default:
-               return ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0) ? 1:0;
-           }
+           return ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0) ? 1:0;
        }
    }
    return 0;
Erstellt in 0.012 Sekunden, mit GeSHi 1.0.8.9

Ich hoffe, daß ich keinen Fehler gemacht habe.
Deine PS3 Werten zeigen, daß die vorher genannte Tasten sehr wahrscheinlich unterschiedlich von der Kamera behandelt sind (sie sind aktiv 1).
elexx hat geschrieben:Dabei scheint in der sich ändernden Zahl irgendwie auch der Neigungssensor drinzustecken. Rechtshochkant gehalten wird die Ziffer auchmal zu "5", linkshochkant zu "a".

Das ist normal. PS1, PS2, PS3 zeigt den logischen Zustand von bestimmten Pins des Digic-Prozessors. Es sieht besser aus in Binärzahlen:
00000100000000011011000111110100 -> PS3 (hexadezimal: 0x401B1F4)
00000001011100000000000111110100 -> 1 zeigt den Platz der Tasten (das ist KEYS_MASK2)

Bin gespannt, wie diese Version funkzionieren wird...

MfG.
Dateianhänge
CHDK-DE-a495-100f-1.1.0.zip
(202.62 KiB) 573-mal heruntergeladen
Zuletzt geändert von srsa.4c am 20.01.2012, 02:06, insgesamt 1-mal geändert.
srsa.4c
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 49
Registriert: 15.01.2012, 16:31
Kamera(s): a410, ...

Re: A495 Firmware-Version 1.00d und 1.00f

Beitragvon elexx » 19.01.2012, 16:23

Bei einem ersten Versuch siehts sehr gut aus: Skript-Autostart geht, Druck auf die [>]-Taste schaltet NUR in den ALT-Modus und längeres Drücken bewirkt die Originalfunktion. Ich werde die nächsten Tage bisschen herumprobieren und mich wieder melden.

Auf jeden Fall: DANKE für die Mühe! =D>
elexx
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 26
Registriert: 28.12.2011, 13:02
Wohnort: Werdau / Sachsen / Deutschland
Kamera(s): A495 (1.00f)

Re: A495 Firmware-Version 1.00d und 1.00f

Beitragvon srsa.4c » 19.01.2012, 22:16

Ich danke auch, du hast geholfen ein wichtiges Problem zu lösen. Wenn du das CHDK-Menü problemlos nutzen kannst, soll alles in Ordnung sein. Nach deiner Bestätigung werden diese Änderungen hoffentlich in den offiziellen CHDK-DE und CHDK Quellcode geraten.
srsa.4c
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 49
Registriert: 15.01.2012, 16:31
Kamera(s): a410, ...

Re: A495 Firmware-Version 1.00d und 1.00f

Beitragvon elexx » 23.01.2012, 22:00

srsa.4c hat geschrieben:Wenn du das CHDK-Menü problemlos nutzen kannst, soll alles in Ordnung sein. Nach deiner Bestätigung werden diese Änderungen hoffentlich in den offiziellen CHDK-DE und CHDK Quellcode geraten.

Ich habe an dieser Stelle kein weiteres Problem feststellen können - würde mich freuen, wenn die letzten Änderungen übernommen würden.

Inzwischen hab ich etwas neues gefunden, im Handbuch steht:

"Zeige Partitions-Nr.
Nur für Kameras mit Multipartition-Unterstützung.
Bei Aktivierung wird in Verbindung mit der numerischen Kapazitätsanzeige
für die SD-Karte die aktive Partition angezeigt.
"

Diesen Menüpunkt sollte es unter "Menü" --> "OSD-Einstellungen" --> "Speicherplatz-Anzeige" --> ... geben, der ist leider nicht da :^o . Zwar ist eingeschränkt "Kameras mit Multipartition-Unterstützung", aber da ich es nach einigen anfänglichen Schwierigkeiten geschafft habe, eine 32-GB-Karte mit 2 Partitionen (FAT16/FAT32) zu benutzen, gehe ich schon davon aus, dass die Kamera das kann.
Möglicherweise hängt ebenfalls damit zusammen, dass beim Anwählen des Menüpunktes "Menü" --> "Verschiedene Einstellungen" --> "Tausche Partitionen" GAR NICHTS passiert. Ich nehme doch an, dass da im Normalfall wenigstens eine Meldung "OK" oder so kommen müsste? Ausserdem wird in diversen Beiträgen beschrieben, dass nach Anwendung dieser Funktion Windows ohne Klimmzüge mit alternativen Treibern auf die größere Partition zugreifen kann, dem ist auch nicht so.

Grüße Steffen
elexx
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 26
Registriert: 28.12.2011, 13:02
Wohnort: Werdau / Sachsen / Deutschland
Kamera(s): A495 (1.00f)

Re: A495 Firmware-Version 1.00d und 1.00f

Beitragvon srsa.4c » 24.01.2012, 01:43

Hallo.

elexx hat geschrieben:würde mich freuen, wenn die letzten Änderungen übernommen würden.

Ist schon geschehen: http://forum.chdk-treff.de/viewtopic.php?f=22&t=1542

elexx hat geschrieben:Zeige Partitions-Nr.

Das sieht ziemlich CHDK-DE spezifisch aus. In der Konfigurationsdatei gibt es eine solche Einstellung, es kann aber nicht geändert werden, denn es fehlt aus dem Menü (ich habe im Quellcode ein wenig nachgesehen). Ich weiß nich, warum das so ist.
elexx hat geschrieben:Möglicherweise hängt ebenfalls damit zusammen, dass beim Anwählen des Menüpunktes "Menü" --> "Verschiedene Einstellungen" --> "Tausche Partitionen" GAR NICHTS passiert. Ich nehme doch an, dass da im Normalfall wenigstens eine Meldung "OK" oder so kommen müsste?

Ich sehe nur, daß dieser Menüpunkt im Vergleich zu der internationalen Version ziemlich anders funktioniert. Probier mal vielleicht die aus.


MfG.
srsa.4c
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 49
Registriert: 15.01.2012, 16:31
Kamera(s): a410, ...

Vorherige

Zurück zu A-Serie

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste

cron