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

Revision 1772, 1.3 KB checked in by philmoz, 15 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
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 @0xfffe2d2c
29#define NUM_FL      10  // 0 - 9, entries in firmware
30#define NUM_DATA    3   // 3 words each entry, first is FL
31extern int focus_len_table[NUM_FL*NUM_DATA];
32
33// Conversion factor lens FL --> 35mm equiv
34// lens      35mm     CF
35// ----      ----     --
36// 6.0       28       ( 28/ 6.0) * 60 = 280  (min FL)
37// 22.5      105      (105/22.5) * 60 = 280  (max FL)
38#define CF_EFL      280
39#define CF_EFL_DIV  60
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 3000;
60}
61
62long get_vbatt_max()
63{
64    return 4100;
65}
66
Note: See TracBrowser for help on using the repository browser.