CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
lib.c-Dateireferenz
#include "platform.h"
#include "lolevel.h"
+ Include-Abhängigkeitsdiagramm für lib.c:

gehe zum Quellcode dieser Datei

Funktionen

void vid_bitmap_refresh ()
 
void shutdown ()
 
void debug_led (int state)
 
void camera_set_led (int led, int state, __attribute__((unused)) int bright)
 
int get_flash_params_count (void)
 
void JogDial_CW (void)
 
void JogDial_CCW (void)
 
void vid_turn_off_updates ()
 
void vid_turn_on_updates ()
 

Dokumentation der Funktionen

void camera_set_led ( int  led,
int  state,
__attribute__((unused)) int  bright 
)

Definiert in Zeile 48 der Datei lib.c.

48  {
49  // approximation of behaviour advertised in documentation.
50  long val = state ? 0x46 : 0x44;
51  switch ( led )
52  {
53  case 4:
54  *((volatile long *) 0xC0220136) = val;
55  break;
56  case 5:
57  *((volatile long *) 0xC0220136) = val;
58  *((volatile long *) 0xC0220133) = val;
59  break;
60  case 7:
61  *((volatile long *) 0xC0220133) = val;
62  break;
63  case 8:
64  *((volatile long *) 0xC02200D4) = val;
65  break;
66  case 9:
67  *((volatile long *) 0xC0223030) = val;
68  break;
69  default:
70  break;
71  }
72 }
void debug_led ( int  state)

Definiert in Zeile 42 der Datei lib.c.

43 {
44  // using direct-print led for debugging
45  *((int*) 0xC02200D4) = state ? 0x46 : 0x44;
46 }
int get_flash_params_count ( void  )

Definiert in Zeile 74 der Datei lib.c.

74  {
75  // Size of table at FlashParamTable (stubs_min.S)
76  // ( <first unk_ after FlashParamTable> - FlashParamTable ) / 4
77  return 120;
78 }
void JogDial_CCW ( void  )

Definiert in Zeile 84 der Datei lib.c.

84  {
85  _PostLogicalEventForNotPowerType(0x875, 1); // RotateJogDialLeft
86 }
void JogDial_CW ( void  )

Definiert in Zeile 80 der Datei lib.c.

80  {
81  _PostLogicalEventForNotPowerType(0x874, 1); // RotateJogDialRight
82 }
void shutdown ( )

Definiert in Zeile 25 der Datei lib.c.

26 {
27  volatile long *p = (void*)0xC022001C; // from sub_FF829230 (e.g. called at end of task_Bye)
28 
29  // based on IRQdisable (why use CPSR_cf instead of CPSR_cxsf?)
30  asm(
31  "MRS R1, CPSR\n"
32  "AND R0, R1, #0x80\n"
33  "ORR R1, R1, #0x80\n"
34  "MSR CPSR_cf, R1\n"
35  :::"r1","r0");
36 
37  *p = 0x44; // power off.
38 
39  while(1); // no nothing while power is being switched off
40 }
void vid_bitmap_refresh ( )

Definiert in Zeile 4 der Datei lib.c.

5 {
6  extern int enabled_refresh_physical_screen; // screen lock counter
7  int old_val = enabled_refresh_physical_screen;
8  if ( old_val == 0 )
9  {
10  _ScreenLock(); // make sure code is called at least once
11  } else {
12  enabled_refresh_physical_screen=1; // forces actual redraw
13  }
14  _RefreshPhysicalScreen(1); // unlock/refresh
15 
16  // restore original situation
17  if ( old_val > 0 )
18  {
19  _ScreenLock();
20  enabled_refresh_physical_screen = old_val;
21  }
22 }
void vid_turn_off_updates ( )

Definiert in Zeile 88 der Datei lib.c.

89 {
90  _ScreenLock();
91 }
void vid_turn_on_updates ( )

Definiert in Zeile 93 der Datei lib.c.

94 {
96 }