source: trunk/platform/sx100is/main.c @ 1772

Revision 1772, 1.3 KB checked in by philmoz, 14 months ago (diff)

Merged revision(s) 1770-1771 from branches/release-1_0:

  • Merge CHDK-DE revision 975 into CHDK.
  • 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
6
7extern long link_bss_start;
8extern long link_bss_end;
9extern void boot();
10
11
12void startup()
13{
14    long *bss = &link_bss_start;
15    long *ptr;
16
17    // sanity check
18    if ((long)&link_bss_end > (MEMISOSTART + MEMISOSIZE)){
19        started();
20        shutdown();
21    }
22
23    // initialize .bss senment
24    while (bss<&link_bss_end)
25        *bss++ = 0;
26
27//      debug_led(1);
28    boot();
29}
30
31// Focus length table in firmware @0xfffe31ac
32#define NUM_FL      23  // 0 - 22, entries in firmware
33#define NUM_DATA    3   // 3 words each entry, first is FL
34extern int focus_len_table[NUM_FL*NUM_DATA];
35
36// Conversion factor lens FL --> 35mm equiv
37// lens      35mm     CF
38// ----      ----     --
39// 6.0       36       ( 36/ 6.0) * 60 = 360  (min FL)
40// 60.0      360      (360/60.0) * 60 = 360  (max FL)
41#define CF_EFL      360
42#define CF_EFL_DIV  60
43
44const int zoom_points = NUM_FL;
45
46int get_effective_focal_length(int zp) {
47    return (CF_EFL*get_focal_length(zp))/CF_EFL_DIV;
48}
49
50int get_focal_length(int zp) {
51    if (zp < 0) zp = 0;
52    else if (zp >= NUM_FL) zp = NUM_FL-1;
53    return focus_len_table[zp*NUM_DATA];
54}
55
56int get_zoom_x(int zp) {
57    return get_focal_length(zp)*10/focus_len_table[0];
58}
59
60long get_vbatt_min()
61{
62    return 2300;
63}
64
65long get_vbatt_max()
66{
67    return 2550;
68}
Note: See TracBrowser for help on using the repository browser.