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

Makrodefinitionen

#define LED_PR   0xC02200D4
 
#define LED_AF   0xC02200E0
 
#define LED_BRIGHTNESS   200
 
#define LED_GREEN   0
 
#define LED_ORANGE   1
 
#define LED_YELLOW   2
 
#define LED_RED   3
 
#define LED_BLUE   4
 
#define LED_AF_BEAM   5
 
#define LED_TIMER   6
 

Funktionen

void shutdown ()
 
static void led_on (const int led, const int brightness)
 
static void led_off (const int led)
 
void debug_led (int state)
 
void camera_set_led (int led, int state, int bright)
 
int get_flash_params_count (void)
 

Makro-Dokumentation

#define LED_AF   0xC02200E0

Definiert in Zeile 23 der Datei lib.c.

#define LED_AF_BEAM   5

Definiert in Zeile 31 der Datei lib.c.

#define LED_BLUE   4

Definiert in Zeile 30 der Datei lib.c.

#define LED_BRIGHTNESS   200

Definiert in Zeile 25 der Datei lib.c.

#define LED_GREEN   0

Definiert in Zeile 26 der Datei lib.c.

#define LED_ORANGE   1

Definiert in Zeile 27 der Datei lib.c.

#define LED_PR   0xC02200D4

Definiert in Zeile 4 der Datei lib.c.

#define LED_RED   3

Definiert in Zeile 29 der Datei lib.c.

#define LED_TIMER   6

Definiert in Zeile 32 der Datei lib.c.

#define LED_YELLOW   2

Definiert in Zeile 28 der Datei lib.c.

Dokumentation der Funktionen

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

Definiert in Zeile 66 der Datei lib.c.

67 {
68  if (state) {
69  if (bright > LED_BRIGHTNESS) bright = LED_BRIGHTNESS;
70  if (led == LED_YELLOW) { // yellow = red + green
71  led_on(LED_GREEN, bright);
72  led_on(LED_ORANGE, bright);
73  } else {
74  led_on(led, bright);
75  }
76  } else {
77  if (led == LED_YELLOW) {
80  } else {
81  led_off(led);
82  }
83  }
84 }
void debug_led ( int  state)

Definiert in Zeile 58 der Datei lib.c.

59 {
60  if (state)
62  else
64 }
int get_flash_params_count ( void  )

Definiert in Zeile 86 der Datei lib.c.

86  {
87  return 111; // Found at ROM:FF972F9C (S5IS 1.01b)
88 }
static void led_off ( const int  led)
static

Definiert in Zeile 46 der Datei lib.c.

47 {
48  if (led < 0 || led > 6 || led == LED_YELLOW) return;
49  static void* addr;
50  if(led == LED_AF_BEAM) { // does not accept anything (so it seems), bypass
51  *((long *) LED_AF) = 0x44;
52  } else {
53  addr = led_table + (led * 0x40) + 0x100;
54  _UniqueLedOff(addr);
55  }
56 }
static void led_on ( const int  led,
const int  brightness 
)
static

Definiert in Zeile 34 der Datei lib.c.

35 {
36  if (led < 0 || led > 6 || led == LED_YELLOW) return;
37  static void* addr;
38  if(led == LED_AF_BEAM) { // does not accept anything (so it seems), bypass
39  *((long *) LED_AF) = 0x46;
40  } else {
41  addr = led_table + (led * 0x40) + 0x100;
43  }
44 }
void shutdown ( )

Definiert in Zeile 6 der Datei lib.c.

7 {
8  volatile long *p = (void*)LED_PR; // SD-write led on S5
9 
10  asm(
11  "MRS R1, CPSR\n"
12  "AND R0, R1, #0x80\n"
13  "ORR R1, R1, #0x80\n"
14  "MSR CPSR_cf, R1\n"
15  :::"r1","r0");
16 
17  *p = 0x44; // led off.
18 
19  while(1);
20 }