Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F86520506
power_sbcp.c
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Mon, Oct 7, 00:01
Size
2 KB
Mime Type
text/x-c
Expires
Wed, Oct 9, 00:01 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
21439690
Attached To
R6618 Oncilla Power Management Board Firmware
power_sbcp.c
View Options
#include <sbcp-uc/packet.h>
#include "power_sbcp.h"
#include "spi_led.h"
#include "buttons.h"
#include "speaker.h"
#include "timer.h"
/**
* \brief Called when sbcp changes frequency or volume
* Called when sbcp changes frequency or volume, makes sure values are correct and sets the sound accordingly
* @param address
* @param newvalue
* @return
*/
sbcp_error
sound_register_callback
(
sbcp_reg_address
address
,
sbcp_reg_val
*
newvalue
){
if
(
address
==
ADDRESS_SPEAKER_VOLUME
){
if
(
newvalue
->
u
>
VOLUME_4
){
newvalue
->
u
=
VOLUME_4
;
}
set_speaker_volume
(
newvalue
->
u
);
}
if
(
address
==
ADDRESS_SPEAKER_FREQ
){
if
(
newvalue
->
u
==
0
){
newvalue
->
u
=
sbcp_reg_uint
(
ADDRESS_SPEAKER_FREQ
);
return
SBCP_NO_ERROR
;
}
set_speaker_freq
(
newvalue
->
u
);
}
return
SBCP_NO_ERROR
;
}
/**
* \brief init the sbcp-registers
* init the sbcp-registers
*/
void
init_my_registers
(){
sbcp_add_register
(
ADDRESS_MAXIMUM_BATTERY_VOLTAGE
,
DEFAULT_MAXIMUM_BATTERY_VOLTAGE
,
SBCP_REG_READABLE
|
SBCP_REG_WRITABLE
|
SBCP_REG_PERSISTENT
,
SBCP_REG_NO_CALLBACK
);
sbcp_add_register
(
ADDRESS_MINIMUM_BATTERY_VOLTAGE
,
DEFAULT_MINIMUM_BATTERY_VOLTAGE
,
SBCP_REG_READABLE
|
SBCP_REG_WRITABLE
|
SBCP_REG_PERSISTENT
,
SBCP_REG_NO_CALLBACK
);
sbcp_add_register
(
ADDRESS_CRITICAL_BATTERY_VOLTAGE
,
DEFAULT_CRITICAL_BATTERY_VOLTAGE
,
SBCP_REG_READABLE
|
SBCP_REG_WRITABLE
|
SBCP_REG_PERSISTENT
,
SBCP_REG_NO_CALLBACK
);
sbcp_add_register
(
ADDRESS_MAXIMUM_CURRENT
,
DEFAULT_MAXIMUM_CURRENT
,
SBCP_REG_READABLE
|
SBCP_REG_WRITABLE
|
SBCP_REG_PERSISTENT
,
SBCP_REG_NO_CALLBACK
);
sbcp_add_register
(
ADDRESS_POWER_STATUS
,
DEFAULT_POWER_STATUS
,
SBCP_REG_READABLE
,
SBCP_REG_NO_CALLBACK
);
sbcp_add_register
(
ADDRESS_POWER_MONITOR_MODE
,
DEFAULT_POWER_MONITOR_MODE
,
SBCP_REG_READABLE
|
SBCP_REG_WRITABLE
,
SBCP_REG_NO_CALLBACK
);
sbcp_add_register
(
ADDRESS_POWER_INPUT_VOLTAGE
,
DEFAULT_POWER_INPUT_VOLTAGE
,
SBCP_REG_READABLE
,
SBCP_REG_NO_CALLBACK
);
sbcp_add_register
(
ADDRESS_POWER_TOTAl_CURRENT
,
DEFAULT_POWER_TOTAl_CURRENT
,
SBCP_REG_READABLE
,
SBCP_REG_NO_CALLBACK
);
sbcp_add_register
(
ADDRESS_SPEAKER_FREQ
,
DEFAULT_SPEAKER_FREQ
,
SBCP_REG_READABLE
|
SBCP_REG_WRITABLE
,
&
sound_register_callback
);
sbcp_add_register
(
ADDRESS_SPEAKER_VOLUME
,
DEFAULT_SPEAKER_VOLUME
,
SBCP_REG_READABLE
|
SBCP_REG_WRITABLE
,
&
sound_register_callback
);
}
/**
* \brief Init the sbcp-instruction for saying the device has started
* Init the sbcp-instruction for saying the device has started
*/
void
init_my_instructions
(){
sbcp_add_instruction
(
SBCP_INST_DEVICE_SPECIFIC_START
,
&
host_is_up
);
}
Event Timeline
Log In to Comment