source: trunk/platform/s100/main.c @ 2798

Revision 1850, 1.3 KB checked in by reyalp, 12 months ago (diff)

s100 updates from c10ud in http://chdk.setepontos.com/index.php?topic=650.msg85140#msg85140

  • long press power button to start in rec mode
  • adjust circle of confusion and default battery voltages
  • Property svn:eol-style set to native
Line 
1#include "lolevel.h"
2#include "platform.h"
3#include "core.h"
4#include "keyboard.h"
5
6extern long link_bss_start;
7extern long link_bss_end;
8extern void boot();
9
10
11void startup()
12{
13    long *bss = &link_bss_start;
14    long *ptr;
15
16    // sanity check
17    if ((long)&link_bss_end > (MEMISOSTART + MEMISOSIZE)){
18        started();
19        shutdown();
20    }
21
22    // initialize .bss senment
23    while (bss<&link_bss_end)
24        *bss++ = 0;
25    boot();
26}
27
28// Focus length table in firmware @0xfff4a4f8
29#define NUM_FL      121 // 0 - 120, entries in firmware
30#define NUM_DATA    2   // 2 words each entry
31extern int focus_len_table[NUM_FL*NUM_DATA];
32
33// Conversion factor lens FL --> 35mm equiv
34// lens      35mm     CF
35// ----      ----     --
36// 5.2       24       ( 24/ 5.2) * 52 = 240  (min FL)
37// 26.0      120      (120/26.0) * 52 = 240  (max FL)
38#define CF_EFL      240
39#define CF_EFL_DIV  52
40
41const int zoom_points = NUM_FL;
42
43int get_effective_focal_length(int zp) {
44    return (CF_EFL*get_focal_length(zp))/CF_EFL_DIV;
45}
46
47int get_focal_length(int zp) {
48    if (zp < 0) zp = 0;
49    else if (zp >= NUM_FL) zp = NUM_FL-1;
50    return focus_len_table[zp*NUM_DATA];
51}
52
53int get_zoom_x(int zp) {
54    return get_focal_length(zp)*10/focus_len_table[0];
55}
56
57long get_vbatt_min()
58{
59    return 3200;
60}
61
62long get_vbatt_max()
63{
64    return 4050;
65}
66
Note: See TracBrowser for help on using the repository browser.