+++ /dev/null
-#define I2STR_PAD_0 0x100
-#define I2STR_LONG 0x200
-#define I2STR_NUMBER 0x400
-
-int i2str(char *s,long val,int len,int form);
+++ /dev/null
-#ifndef _PHY_H_
-#define _PHY_H_
-
-/* ************************************************* */
-/* PHY */
-/* ************************************************* */
-#define PHY_BMCR 0x0 /* Basic Mode Control Register */
-#define PHY_BMSR 0x01 /* Basic Mode Status Register */
-#define PHY_ANAR 0x4 /* Auto-Negotiation Advertisement Register */
-#define PHY_LEDCR 0x18 /* LED Direct Control Register */
-#define PHY_PHYCR 0x19 /* PHY Control Register */
-#define PHY_PHYCR2 0x1C /* PHY Control Register 2 */
-#define PHY_STS 0x10 /* PHY Status Register */
-#define PHY_ANLPAR 0x05 /* Auto-Negotiation Link Partner Ability Register */
-
-/* BMCR */
-#define PHY_RESET_m (1 << 15)
-#define PHY_SPEED_m (1 << 13)
-#define PHY_AUTONEG_EN_m (1 << 12) /* ! */
-#define PHY_POWERDOWN_m (1 << 11)
-#define PHY_DUPLEX_m (1 << 8)
-#define PHY_AUTONEG_REST (1 << 9)
-
-/* BMSR */
-#define PHY_A_NEG_COMPLETE_m (1 << 5)
-
-/* ANAR & ANLPAR */
-#define PHY_100BASET4_m (1 << 9)
-#define PHY_100BASETXDUPL_m (1 << 8)
-#define PHY_100BASETX_m (1 << 7)
-#define PHY_10BASETDUPL_m (1 << 6)
-#define PHY_10BASET_m (1 << 5)
-
-
-/* ************************************************* */
-void PHY_partner_ability_get(unsigned int mdioBaseAddr, unsigned int phyAddr, unsigned short *data);
-void PHY_configure(unsigned int mdioBaseAddr, unsigned int phyAddr);
-
-
-#endif /* _PHY_H_ */
* @return value on pin or -1 if error
*/
int din_get_pin_val(uint32_t pin) {
- if (pin > 15) return -1;
- return ((din_spi_resp & (1 << din_get_pin_val_i[pin])) > 0);
+ if (pin > 15) return -1;
+ return ((din_spi_resp & (1 << din_get_pin_val_i[pin])) > 0);
}
/**
* Set programmable pin DIN_SP according bits in argument as switch-to-battery (1) or switch-to-ground(0)
- * @param word 8-bit array representing switch-to state
+ * @param word 8-bit array representing switch-to state
*/
void din_set_pr(uint8_t word) {
- int i;
- uint8_t val;
- din_spi_cmd = 1 << 16; // Set command
-
- for (i = 0; i < 8; i++,word >>= 1) {
- val = word&0x1;
- if (val == 1) {
- din_spi_cmd |= 1 << din_set_pin_pr_i[i];
- }
- else if (val == 0) {
- din_spi_cmd &= ~(1 << din_set_pin_pr_i[i]);
- }
- }
+ int i;
+ uint8_t val;
+ din_spi_cmd = 1 << 16; // Set command
+
+ for (i = 0; i < 8; i++,word >>= 1) {
+ val = word&0x1;
+ if (val == 1) {
+ din_spi_cmd |= 1 << din_set_pin_pr_i[i];
+ }
+ else if (val == 0) {
+ din_spi_cmd &= ~(1 << din_set_pin_pr_i[i]);
+ }
+ }
}
/**
* @param sg_state 16-bit variable representing state of SP pins. (0 - active, 1 - tri-state).
*/
void din_set_stat(uint16_t sp_state, uint16_t sg_state) {
- int i;
- uint16_t val;
- uint32_t state = (sp_state&0xFF)|((sg_state&0xFF)<<8);
- uint32_t* pin_cmd_ptr = NULL;
- pin_st_p_cmd = 0x9 << 16; // Set command for SP pins
- pin_st_g_cmd = 0xA << 16; // Set command for SG pins
- for (i = 0; i < 16; i++,state >>= 1) {
- val = state&0x1;
- if (i < 8) { // First 8 pins SP0 - SP7
- pin_cmd_ptr = &pin_st_p_cmd;
- }
- else { // Another 8 pins SG0 - SG7
- pin_cmd_ptr = &pin_st_g_cmd;
- }
-
- if (val) {
- *pin_cmd_ptr |= 1 << din_set_pin_st_i[i];
- }
- else {
- *pin_cmd_ptr &= ~(1 << din_set_pin_st_i[i]);
- }
- }
- transfer_state_cmd = 1; // Enable transfer of two commands at once
+ int i;
+ uint16_t val;
+ uint32_t state = (sp_state&0xFF)|((sg_state&0xFF)<<8);
+ uint32_t* pin_cmd_ptr = NULL;
+ pin_st_p_cmd = 0x9 << 16; // Set command for SP pins
+ pin_st_g_cmd = 0xA << 16; // Set command for SG pins
+ for (i = 0; i < 16; i++,state >>= 1) {
+ val = state&0x1;
+ if (i < 8) { // First 8 pins SP0 - SP7
+ pin_cmd_ptr = &pin_st_p_cmd;
+ }
+ else { // Another 8 pins SG0 - SG7
+ pin_cmd_ptr = &pin_st_g_cmd;
+ }
+
+ if (val) {
+ *pin_cmd_ptr |= 1 << din_set_pin_st_i[i];
+ }
+ else {
+ *pin_cmd_ptr &= ~(1 << din_set_pin_st_i[i]);
+ }
+ }
+ transfer_state_cmd = 1; // Enable transfer of two commands at once
}
/**
* Enable/disable interrupts for DIN pins as well as acting pins as wake-up
- * @param sp_int_enable 16-bit variable representing interrupt enablers for SP pins (0 - disable wake-up and interrupt, 1 - enable interrupt).
+ * @param sp_int_enable 16-bit variable representing interrupt enablers for SP pins (0 - disable wake-up and interrupt, 1 - enable interrupt).
* @param sg_int_enable 16-bit variable representing interrupt enablers for SG pins (0 - disable wake-up and interrupt, 1 - enable interrupt).
*/
void din_set_int(uint16_t sp_int_enable, uint16_t sg_int_enable) {
- int i;
- uint16_t val;
- uint32_t int_enable = (sp_int_enable&0xFF)|((sg_int_enable&0xFF)<<8);
- uint32_t* pin_cmd_ptr = NULL;
- pin_int_p_cmd = 0x2 << 16; // Set command for SP pins
- pin_int_g_cmd = 0x3 << 16; // Set command for SG pins
- for (i = 0; i < 16; i++,int_enable >>= 1) {
- val = int_enable&0x1;
- if (i < 8) { // First 8 pins SP0 - SP7
- pin_cmd_ptr = &pin_int_p_cmd;
- }
- else { // Another 8 pins SG0 - SG7
- pin_cmd_ptr = &pin_int_g_cmd;
- }
-
- if (val) {
- *pin_cmd_ptr |= 1 << din_set_pin_st_i[i];
- }
- else {
- *pin_cmd_ptr &= ~(1 << din_set_pin_st_i[i]);
- }
- }
- transfer_interrupt_cmd = 1; // Enable transfer of two commands at once
+ int i;
+ uint16_t val;
+ uint32_t int_enable = (sp_int_enable&0xFF)|((sg_int_enable&0xFF)<<8);
+ uint32_t* pin_cmd_ptr = NULL;
+ pin_int_p_cmd = 0x2 << 16; // Set command for SP pins
+ pin_int_g_cmd = 0x3 << 16; // Set command for SG pins
+ for (i = 0; i < 16; i++,int_enable >>= 1) {
+ val = int_enable&0x1;
+ if (i < 8) { // First 8 pins SP0 - SP7
+ pin_cmd_ptr = &pin_int_p_cmd;
+ }
+ else { // Another 8 pins SG0 - SG7
+ pin_cmd_ptr = &pin_int_g_cmd;
+ }
+
+ if (val) {
+ *pin_cmd_ptr |= 1 << din_set_pin_st_i[i];
+ }
+ else {
+ *pin_cmd_ptr &= ~(1 << din_set_pin_st_i[i]);
+ }
+ }
+ transfer_interrupt_cmd = 1; // Enable transfer of two commands at once
}
/**
* Prepare reset command to be sent through spi
*/
void din_reset() {
- din_spi_cmd = 0x7F0000;
+ din_spi_cmd = 0x7F0000;
}
/**
* Prepare switch status command to be sent through spi
*/
void din_switch_st() {
- din_spi_cmd = 0x0;
+ din_spi_cmd = 0x0;
}
/**
* @return values of all pins DIN0 - DIN15
*/
uint16_t din_get_val_word() {
- uint16_t word = 0;
- int i;
- for (i = 0; i < 16; i++) {
- word |= din_get_pin_val(i) << i;
- }
- return word;
+ uint16_t word = 0;
+ int i;
+ for (i = 0; i < 16; i++) {
+ word |= din_get_pin_val(i) << i;
+ }
+ return word;
}
/**
* return spi response
*/
int din_spi_transfer_mst() {
- port_desc_t* desc;
- din_spi_cmd_sh = din_spi_cmd;
+ port_desc_t* desc;
+ din_spi_cmd_sh = din_spi_cmd;
desc = hal_port_get_dsc(PORT_NAME_DINSPI, -1);
uint32_t commands[3];
commands[0] = (din_spi_cmd_sh & 0xFF0000) >> 16;
commands[2] = (din_spi_cmd_sh & 0xFF);
din_spi_resp = desc->port_setfnc_ptr(desc->config, desc->numValues, commands);
- return din_spi_resp;
+ return din_spi_resp;
}
/**
* Returns spi response
*/
int din_spi_transfer() {
- if (transfer_state_cmd) {
- din_spi_cmd = pin_st_p_cmd;
- din_spi_transfer_mst();
- din_spi_cmd = pin_st_g_cmd;
- transfer_state_cmd = 0;
- }
- else if (transfer_interrupt_cmd) {
- din_spi_cmd = pin_int_p_cmd;
- din_spi_transfer_mst();
- din_spi_cmd = pin_int_g_cmd;
- transfer_interrupt_cmd = 0;
- }
- return din_spi_transfer_mst();
+ if (transfer_state_cmd) {
+ din_spi_cmd = pin_st_p_cmd;
+ din_spi_transfer_mst();
+ din_spi_cmd = pin_st_g_cmd;
+ transfer_state_cmd = 0;
+ }
+ else if (transfer_interrupt_cmd) {
+ din_spi_cmd = pin_int_p_cmd;
+ din_spi_transfer_mst();
+ din_spi_cmd = pin_int_g_cmd;
+ transfer_interrupt_cmd = 0;
+ }
+ return din_spi_transfer_mst();
}
/**
* @return latest spi response
*/
int din_spi_response() {
- return din_spi_resp;
+ return din_spi_resp;
}
/**
* @return latest sent command
*/
int din_spi_get_cmd() {
- return din_spi_cmd;
+ return din_spi_cmd;
}
+++ /dev/null
-/*******************************************************************
- Components for embedded applications builded for
- laboratory and medical instruments firmware
-
- cmd_i2str.c - formated text to string conversion
- without need to pull in whole stdio support
-
- Copyright (C) 2001-2010 by Pavel Pisa pisa@cmp.felk.cvut.cz
- (C) 2002-2010 by PiKRON Ltd. http://www.pikron.com
- (C) 2007 by Michal Sojka <sojkam1@fel.cvut.cz>
-
- This file can be used and copied according to next
- license alternatives
- - MPL - Mozilla Public License
- - GPL - GNU Public License
- - other license provided by project originators
- *******************************************************************/
-
-#include "i2str.h"
-
-/**
- * Converts integer to string.
- * @param s Buffer to store the result.
- * @param val Value to convert.
- * @param len Minimal width of the converted strign (padded by ' ').
- * @param form Base of the number.
- * @return 0
- */
-int i2str(char *s,long val,int len,int form)
-{
- int sig;
- int dig=1;
- int padd=0;
- unsigned base=form&0xff;
- unsigned long u;
- unsigned long mag;
- unsigned long num;
- if(!base) base=10;
- if((sig=(val<0)&&(base==10))) num=-val;
- else num=val;
-
- mag=1;
- u=base*mag;
- while(num>=u){
- dig++;
- mag=u;
- if(mag>(unsigned long)(~(unsigned long)0)/base) break;
- u*=base;
- }
-
- if(len){
- padd=len-dig;
- if(sig) padd--;
- }
- if(padd<0) padd=0;
-
-
- if(form&I2STR_PAD_0) {
- if(sig) *(s++)='-';
- while(padd){
- *(s++)='0';
- padd--;
- }
- }else{
- while(padd){
- *(s++)=' ';
- padd--;
- }
- if(sig) *(s++)='-';
- }
-
- while(dig--){
- u=num/mag;
- if(u>9) *(s++)='A'-10+u;
- else *(s++)='0'+u;
- num=num%mag;
- mag/=base;
- }
- *s=0;
- return 0;
-}
-
/** @brief Data structure containing converted data from ADC\r
*\r
* Defined in commands.c */\r
-extern canBASE_t *canDst;\r
-extern canBASE_t *canSrc;\r
-extern uint32_t canMsgBox;\r
-extern uint32_t canSendError;\r
-extern uint32_t canRecError;\r
+//extern canBASE_t *canDst;\r
+//extern canBASE_t *canSrc;\r
+//extern uint32_t canMsgBox;\r
+//extern uint32_t canSendError;\r
+//extern uint32_t canRecError;\r
/* USER CODE END */\r
\r
void esmGroup1Notification(uint32_t channel)\r
+++ /dev/null
-#include "sys_common.h"
-
-#include "ti_drv_emac.h"
-#include "ti_drv_mdio.h"
-#include "hw_mdio.h"
-#include "hw_emac.h"
-
-#include "phy.h"
-
-void PHY_partner_ability_get(unsigned int mdioBaseAddr, unsigned int phyAddr, unsigned short *data)
-{
- MDIOPhyRegRead(mdioBaseAddr, phyAddr, PHY_ANAR, data);
-}
-
-void PHY_configure(unsigned int mdioBaseAddr, unsigned int phyAddr)
-{
- volatile unsigned short data = 0;
-
- /* Enable Auto Negotiation */
- MDIOPhyRegWrite(mdioBaseAddr, phyAddr, PHY_BMCR, 0);
- MDIOPhyRegWrite(mdioBaseAddr, phyAddr, PHY_BMCR, PHY_RESET_m | PHY_AUTONEG_EN_m);
-
- /* Write Auto Negotiation capabilities */
- MDIOPhyRegRead(mdioBaseAddr, phyAddr, PHY_ANAR, &data);
- data |= (PHY_100BASETXDUPL_m | PHY_100BASETX_m | PHY_10BASETDUPL_m | PHY_10BASET_m);
- MDIOPhyRegWrite(mdioBaseAddr, phyAddr,
- PHY_ANAR, data);
-
- /* Start Auto Negotiation */
- MDIOPhyRegRead(mdioBaseAddr, phyAddr, PHY_BMCR, &data);
- data |= PHY_AUTONEG_REST;
- MDIOPhyRegWrite(mdioBaseAddr, phyAddr,
- PHY_BMCR, data);
-
- /* Get the auto negotiation status*/
- /* Wait till auto negotiation is complete */
- do {
- MDIOPhyRegRead(mdioBaseAddr, phyAddr, PHY_BMSR, &data);
- } while ((data & PHY_A_NEG_COMPLETE_m) == 0);
-}
' * {mneu} module initialization.\n'
' * Call this method before using this module.\n'
' *\n'
- ' * @return Void.\n'
+ ' * @return SUCCESS if initialization successful.\n'
+ ' * FAIL is module already initialized.\n'
' */\n'
'void rpp_{mne}_init();\n\n\n'
'#endif /* __RPP_{mneu}_H */\n\n').format(**locals()))
f.write(('#include "rpp.h"\n\n'
'#if rppCONFIG_INCLUDE_{mneu} == 1\n\n'
'static boolean_t initialized = FALSE;\n\n'
- 'void rpp_{mne}_init()\n'
+ 'int8_t rpp_{mne}_init()\n'
'{{\n'
' if(initialized) {{\n'
- ' return;\n'
+ ' return FAIL;\n'
' }}\n'
' initialized = TRUE;\n\n'
' // FIXME: Implement.\n'
+ ' return SUCCESS;\n'
'}}\n\n\n'
'#endif /* rppCONFIG_INCLUDE_{mneu} */\n\n').format(**locals()))
' * Library initialization function.\n'
' * Call this method before using this library.\n'
' *\n'
- ' * @return Void.\n'
+ ' * @return SUCCESS if initialization successful.\n'
+ ' * FAIL is library was already initialized.\n'
' */\n'
- 'void rpp_init();\n\n')
+ 'int8_t rpp_init();\n\n')
# Generate library main file
- with open('src/rpp.c', 'w') as f:
+ generate_rpp_impl = True
+ if(generate_rpp_impl):
+ with open('src/rpp.c', 'w') as f:
- # Write header
- f.write(header.format(prefix='',
- mne='rpp',
- ext='.c',
- abstract='RPP API library implementation file.'))
-
- # Include library file
- f.write('#include "rpp.h"\n\n')
- f.write('bool rpp_initialized = false;\n\n')
-
- # Declare initialization function
- f.write('void rpp_init() {\n\n')
- f.write(' if(rpp_initialized) {\n'
- ' return;\n'
- ' }\n'
- ' rpp_initialized = true;\n\n')
- for mne in files:
- mneu = mne.upper()
- f.write(('#if rppCONFIG_INCLUDE_{mneu} == 1\n'
- ' rpp_{mne}_init();\n'
- '#endif\n\n').format(**locals()))
- f.write('}\n\n')
+ # Write header
+ f.write(header.format(prefix='',
+ mne='rpp',
+ ext='.c',
+ abstract='RPP API library implementation file.'))
+
+ # Include library file
+ f.write('#include "rpp.h"\n\n')
+ f.write('boolean_t initialized = FALSE;\n\n')
+
+ # Declare initialization function
+ f.write('int8_t rpp_init() {\n\n')
+ f.write(' if(initialized) {\n'
+ ' return FAIL;\n'
+ ' }\n'
+ ' initialized = TRUE;\n\n')
+ for mne in files:
+ mneu = mne.upper()
+ f.write(('#if rppCONFIG_INCLUDE_{mneu} == 1\n'
+ ' rpp_{mne}_init();\n'
+ '#endif\n\n').format(**locals()))
+ f.write(' return SUCCESS;\n')
+ f.write('}\n\n')
if __name__ == '__main__':
/**
- * RPP API library header file.
+ * RPP binary handling header file.
*
* @file binary.h
*
#define bit_clear(value, bit) ((value) &= ~(1UL << (bit)))
#define bit_write(value, bit, bit_value) (bit_value ? bit_set(value, bit) : bit_clear(value, bit))
-#define B0 0
-#define B00 0
-#define B000 0
-#define B0000 0
-#define B00000 0
-#define B000000 0
-#define B0000000 0
-#define B00000000 0
-#define B1 1
-#define B01 1
-#define B001 1
-#define B0001 1
-#define B00001 1
-#define B000001 1
-#define B0000001 1
-#define B00000001 1
-#define B10 2
-#define B010 2
-#define B0010 2
-#define B00010 2
-#define B000010 2
-#define B0000010 2
-#define B00000010 2
-#define B11 3
-#define B011 3
-#define B0011 3
-#define B00011 3
-#define B000011 3
-#define B0000011 3
-#define B00000011 3
-#define B100 4
-#define B0100 4
-#define B00100 4
-#define B000100 4
-#define B0000100 4
-#define B00000100 4
-#define B101 5
-#define B0101 5
-#define B00101 5
-#define B000101 5
-#define B0000101 5
-#define B00000101 5
-#define B110 6
-#define B0110 6
-#define B00110 6
-#define B000110 6
-#define B0000110 6
-#define B00000110 6
-#define B111 7
-#define B0111 7
-#define B00111 7
-#define B000111 7
-#define B0000111 7
-#define B00000111 7
-#define B1000 8
-#define B01000 8
-#define B001000 8
-#define B0001000 8
-#define B00001000 8
-#define B1001 9
-#define B01001 9
-#define B001001 9
-#define B0001001 9
-#define B00001001 9
-#define B1010 10
-#define B01010 10
-#define B001010 10
-#define B0001010 10
-#define B00001010 10
-#define B1011 11
-#define B01011 11
-#define B001011 11
-#define B0001011 11
-#define B00001011 11
-#define B1100 12
-#define B01100 12
-#define B001100 12
-#define B0001100 12
-#define B00001100 12
-#define B1101 13
-#define B01101 13
-#define B001101 13
-#define B0001101 13
-#define B00001101 13
-#define B1110 14
-#define B01110 14
-#define B001110 14
-#define B0001110 14
-#define B00001110 14
-#define B1111 15
-#define B01111 15
-#define B001111 15
-#define B0001111 15
-#define B00001111 15
-#define B10000 16
-#define B010000 16
-#define B0010000 16
-#define B00010000 16
-#define B10001 17
-#define B010001 17
-#define B0010001 17
-#define B00010001 17
-#define B10010 18
-#define B010010 18
-#define B0010010 18
-#define B00010010 18
-#define B10011 19
-#define B010011 19
-#define B0010011 19
-#define B00010011 19
-#define B10100 20
-#define B010100 20
-#define B0010100 20
-#define B00010100 20
-#define B10101 21
-#define B010101 21
-#define B0010101 21
-#define B00010101 21
-#define B10110 22
-#define B010110 22
-#define B0010110 22
-#define B00010110 22
-#define B10111 23
-#define B010111 23
-#define B0010111 23
-#define B00010111 23
-#define B11000 24
-#define B011000 24
-#define B0011000 24
-#define B00011000 24
-#define B11001 25
-#define B011001 25
-#define B0011001 25
-#define B00011001 25
-#define B11010 26
-#define B011010 26
-#define B0011010 26
-#define B00011010 26
-#define B11011 27
-#define B011011 27
-#define B0011011 27
-#define B00011011 27
-#define B11100 28
-#define B011100 28
-#define B0011100 28
-#define B00011100 28
-#define B11101 29
-#define B011101 29
-#define B0011101 29
-#define B00011101 29
-#define B11110 30
-#define B011110 30
-#define B0011110 30
-#define B00011110 30
-#define B11111 31
-#define B011111 31
-#define B0011111 31
-#define B00011111 31
-#define B100000 32
-#define B0100000 32
-#define B00100000 32
-#define B100001 33
-#define B0100001 33
-#define B00100001 33
-#define B100010 34
-#define B0100010 34
-#define B00100010 34
-#define B100011 35
-#define B0100011 35
-#define B00100011 35
-#define B100100 36
-#define B0100100 36
-#define B00100100 36
-#define B100101 37
-#define B0100101 37
-#define B00100101 37
-#define B100110 38
-#define B0100110 38
-#define B00100110 38
-#define B100111 39
-#define B0100111 39
-#define B00100111 39
-#define B101000 40
-#define B0101000 40
-#define B00101000 40
-#define B101001 41
-#define B0101001 41
-#define B00101001 41
-#define B101010 42
-#define B0101010 42
-#define B00101010 42
-#define B101011 43
-#define B0101011 43
-#define B00101011 43
-#define B101100 44
-#define B0101100 44
-#define B00101100 44
-#define B101101 45
-#define B0101101 45
-#define B00101101 45
-#define B101110 46
-#define B0101110 46
-#define B00101110 46
-#define B101111 47
-#define B0101111 47
-#define B00101111 47
-#define B110000 48
-#define B0110000 48
-#define B00110000 48
-#define B110001 49
-#define B0110001 49
-#define B00110001 49
-#define B110010 50
-#define B0110010 50
-#define B00110010 50
-#define B110011 51
-#define B0110011 51
-#define B00110011 51
-#define B110100 52
-#define B0110100 52
-#define B00110100 52
-#define B110101 53
-#define B0110101 53
-#define B00110101 53
-#define B110110 54
-#define B0110110 54
-#define B00110110 54
-#define B110111 55
-#define B0110111 55
-#define B00110111 55
-#define B111000 56
-#define B0111000 56
-#define B00111000 56
-#define B111001 57
-#define B0111001 57
-#define B00111001 57
-#define B111010 58
-#define B0111010 58
-#define B00111010 58
-#define B111011 59
-#define B0111011 59
-#define B00111011 59
-#define B111100 60
-#define B0111100 60
-#define B00111100 60
-#define B111101 61
-#define B0111101 61
-#define B00111101 61
-#define B111110 62
-#define B0111110 62
-#define B00111110 62
-#define B111111 63
-#define B0111111 63
-#define B00111111 63
-#define B1000000 64
-#define B01000000 64
-#define B1000001 65
-#define B01000001 65
-#define B1000010 66
-#define B01000010 66
-#define B1000011 67
-#define B01000011 67
-#define B1000100 68
-#define B01000100 68
-#define B1000101 69
-#define B01000101 69
-#define B1000110 70
-#define B01000110 70
-#define B1000111 71
-#define B01000111 71
-#define B1001000 72
-#define B01001000 72
-#define B1001001 73
-#define B01001001 73
-#define B1001010 74
-#define B01001010 74
-#define B1001011 75
-#define B01001011 75
-#define B1001100 76
-#define B01001100 76
-#define B1001101 77
-#define B01001101 77
-#define B1001110 78
-#define B01001110 78
-#define B1001111 79
-#define B01001111 79
-#define B1010000 80
-#define B01010000 80
-#define B1010001 81
-#define B01010001 81
-#define B1010010 82
-#define B01010010 82
-#define B1010011 83
-#define B01010011 83
-#define B1010100 84
-#define B01010100 84
-#define B1010101 85
-#define B01010101 85
-#define B1010110 86
-#define B01010110 86
-#define B1010111 87
-#define B01010111 87
-#define B1011000 88
-#define B01011000 88
-#define B1011001 89
-#define B01011001 89
-#define B1011010 90
-#define B01011010 90
-#define B1011011 91
-#define B01011011 91
-#define B1011100 92
-#define B01011100 92
-#define B1011101 93
-#define B01011101 93
-#define B1011110 94
-#define B01011110 94
-#define B1011111 95
-#define B01011111 95
-#define B1100000 96
-#define B01100000 96
-#define B1100001 97
-#define B01100001 97
-#define B1100010 98
-#define B01100010 98
-#define B1100011 99
-#define B01100011 99
-#define B1100100 100
-#define B01100100 100
-#define B1100101 101
-#define B01100101 101
-#define B1100110 102
-#define B01100110 102
-#define B1100111 103
-#define B01100111 103
-#define B1101000 104
-#define B01101000 104
-#define B1101001 105
-#define B01101001 105
-#define B1101010 106
-#define B01101010 106
-#define B1101011 107
-#define B01101011 107
-#define B1101100 108
-#define B01101100 108
-#define B1101101 109
-#define B01101101 109
-#define B1101110 110
-#define B01101110 110
-#define B1101111 111
-#define B01101111 111
-#define B1110000 112
-#define B01110000 112
-#define B1110001 113
-#define B01110001 113
-#define B1110010 114
-#define B01110010 114
-#define B1110011 115
-#define B01110011 115
-#define B1110100 116
-#define B01110100 116
-#define B1110101 117
-#define B01110101 117
-#define B1110110 118
-#define B01110110 118
-#define B1110111 119
-#define B01110111 119
-#define B1111000 120
-#define B01111000 120
-#define B1111001 121
-#define B01111001 121
-#define B1111010 122
-#define B01111010 122
-#define B1111011 123
-#define B01111011 123
-#define B1111100 124
-#define B01111100 124
-#define B1111101 125
-#define B01111101 125
-#define B1111110 126
-#define B01111110 126
-#define B1111111 127
-#define B01111111 127
-#define B10000000 128
-#define B10000001 129
-#define B10000010 130
-#define B10000011 131
-#define B10000100 132
-#define B10000101 133
-#define B10000110 134
-#define B10000111 135
-#define B10001000 136
-#define B10001001 137
-#define B10001010 138
-#define B10001011 139
-#define B10001100 140
-#define B10001101 141
-#define B10001110 142
-#define B10001111 143
-#define B10010000 144
-#define B10010001 145
-#define B10010010 146
-#define B10010011 147
-#define B10010100 148
-#define B10010101 149
-#define B10010110 150
-#define B10010111 151
-#define B10011000 152
-#define B10011001 153
-#define B10011010 154
-#define B10011011 155
-#define B10011100 156
-#define B10011101 157
-#define B10011110 158
-#define B10011111 159
-#define B10100000 160
-#define B10100001 161
-#define B10100010 162
-#define B10100011 163
-#define B10100100 164
-#define B10100101 165
-#define B10100110 166
-#define B10100111 167
-#define B10101000 168
-#define B10101001 169
-#define B10101010 170
-#define B10101011 171
-#define B10101100 172
-#define B10101101 173
-#define B10101110 174
-#define B10101111 175
-#define B10110000 176
-#define B10110001 177
-#define B10110010 178
-#define B10110011 179
-#define B10110100 180
-#define B10110101 181
-#define B10110110 182
-#define B10110111 183
-#define B10111000 184
-#define B10111001 185
-#define B10111010 186
-#define B10111011 187
-#define B10111100 188
-#define B10111101 189
-#define B10111110 190
-#define B10111111 191
-#define B11000000 192
-#define B11000001 193
-#define B11000010 194
-#define B11000011 195
-#define B11000100 196
-#define B11000101 197
-#define B11000110 198
-#define B11000111 199
-#define B11001000 200
-#define B11001001 201
-#define B11001010 202
-#define B11001011 203
-#define B11001100 204
-#define B11001101 205
-#define B11001110 206
-#define B11001111 207
-#define B11010000 208
-#define B11010001 209
-#define B11010010 210
-#define B11010011 211
-#define B11010100 212
-#define B11010101 213
-#define B11010110 214
-#define B11010111 215
-#define B11011000 216
-#define B11011001 217
-#define B11011010 218
-#define B11011011 219
-#define B11011100 220
-#define B11011101 221
-#define B11011110 222
-#define B11011111 223
-#define B11100000 224
-#define B11100001 225
-#define B11100010 226
-#define B11100011 227
-#define B11100100 228
-#define B11100101 229
-#define B11100110 230
-#define B11100111 231
-#define B11101000 232
-#define B11101001 233
-#define B11101010 234
-#define B11101011 235
-#define B11101100 236
-#define B11101101 237
-#define B11101110 238
-#define B11101111 239
-#define B11110000 240
-#define B11110001 241
-#define B11110010 242
-#define B11110011 243
-#define B11110100 244
-#define B11110101 245
-#define B11110110 246
-#define B11110111 247
-#define B11111000 248
-#define B11111001 249
-#define B11111010 250
-#define B11111011 251
-#define B11111100 252
-#define B11111101 253
-#define B11111110 254
-#define B11111111 255
-
-
#endif /* __RPP_BINARY_H */
#define HIGH 0x1
#define LOW 0x0
+#define SUCCESS 0x1
+#define FAIL 0x0
+
/* Standard includes */
#include "types.h"
#include "binary.h"
* AIN module initialization.
* Call this method before using this module.
*
- * @return Void.
+ * @return SUCCESS if initialization successful.
+ * FAIL is module already initialized.
*/
-void rpp_ain_init();
+int8_t rpp_ain_init();
+
+
+/**
+ * Get the current analog value on the given pin.
+ *
+ * @param[in] pin The pin number to read [1-12].
+ * @return Value between 0-4095 (ADC is 12bit resolution) representing the
+ * analog value on given pin.
+ * -1 if pin number is out of range.
+ */
+int8_t rpp_ain_get(uint8_t pin);
#endif /* __RPP_AIN_H */
* AOUT module initialization.
* Call this method before using this module.
*
- * @return Void.
+ * @return SUCCESS if initialization successful.
+ * FAIL is module already initialized.
*/
-void rpp_aout_init();
+int8_t rpp_aout_init();
+
+
+
+int16_t rpp_aout_setup(uint8_t pin, boolean_t enable);
+
+
+/**
+ * Set the given analog value to the given pin.
+ *
+ * @param[in] pin The pin number to set [1-4].
+ * @param[in] val The value to set the analog output [0-4095].
+ * @return Value between 0-4095 (ADC is 12bit resolution) representing the
+ * analog value on given pin.
+ * -1 if pin number is out of range.
+ */
+int16_t rpp_aout_set(uint8_t pin, uint16_t val);
+
+
+int16_t rpp_aout_set_volt(uint8_t pin, uint16_t val);
+
+
+
+/*
+ * Commit .
+ *
+ * @return Status of the SPI transfer. FIXME: Document status.
+ */
+int rpp_aout_update();
#endif /* __RPP_AOUT_H */
* DIN module initialization.
* Call this method before using this module.
*
- * @return Void.
+ * @return SUCCESS if initialization successful.
+ * FAIL is module already initialized.
*/
-void rpp_din_init();
+int8_t rpp_din_init();
+
+
+/**
+ * Configure pull type for given pin.
+ *
+ * @param[in] pin The pin number to read [1-16].
+ * @param[in] pull_type PULLUP or PULLDOWN to set pull type for given pin.
+ * Note that only inputs [x-y] support pull-down. All pins
+ * support pull-up. FIXME: Find ranges.
+ * @return 0 if successful.
+ * -1 if pin number is out of range.
+ * -2 if pull_type is requested for inputs without this feature.
+ */
+int8_t rpp_din_setup(uint8_t pin, uint8_t pull_type);
+
+
+/**
+ * Get the current cached value of the given pin.
+ *
+ * @param[in] pin The pin number to read [1-16].
+ * @param[in] var_thr Use variable threshold uncached high speed channel to
+ * read the value (True), or use SPI cached value (False).
+ * Note that only inputs [x-z] can use this option. Inputs
+ * [x-y] use variable threshold A and [y-z] use variable
+ * threshold B. FIXME: Find ranges.
+ * @return HIGH or LOW if successful.
+ * -1 if pin number is out of range.
+ * -2 if var_thr is requested for inputs without this feature.
+ */
+int8_t rpp_din_get(uint8_t pin, boolean_t var_thr);
+
+
+/**
+ * Get the diagnostic value for given pin.
+ *
+ * @param[in] pin The pin number to read [1-16].
+ * @return HIGH or LOW if successful.
+ * -1 if pin number is out of range.
+ */
+int8_t rpp_din_diagnostic(uint8_t pin);
+
+
+/**
+ * Read and update cached values and diagnostic values of all pins.
+ *
+ * @return Status of the SPI transfer. FIXME: Document status.
+ */
+int rpp_din_update();
#endif /* __RPP_DIN_H */
* @brief NULL definition
*/
#ifndef NULL
-#define NULL ((void *) 0U)
+#define NULL ((void *) 0x0)
#endif
/** @def TRUE
* @brief definition for TRUE
*/
#ifndef TRUE
-#define TRUE 1U
+#define TRUE 0x1
#endif
/** @def FALSE
* @brief Boolean definition for FALSE
*/
#ifndef FALSE
-#define FALSE 0U
+#define FALSE 0x0
#endif
/** @def HIGH
#include "rpp.h"
-bool rpp_initialized = false;
+boolean_ rpp_initialized = FALSE;
void rpp_init() {
if(rpp_initialized) {
return;
}
- rpp_initialized = true;
+ rpp_initialized = TRUE;
#if rppCONFIG_INCLUDE_DIN == 1
rpp_din_init();
static boolean_t initialized = FALSE;
-void rpp_ain_init()
+uint8_t rpp_ain_init()
{
if(initialized) {
- return;
+ return FAIL;
}
initialized = TRUE;
// FIXME: Implement.
+ return SUCCESS;
}
static boolean_t initialized = FALSE;
-void rpp_aout_init()
+uint8_t rpp_aout_init()
{
if(initialized) {
- return;
+ return FAIL;
}
initialized = TRUE;
// FIXME: Implement.
+ return SUCCESS;
}
static boolean_t initialized = FALSE;
-void rpp_din_init()
+uint8_t rpp_din_init()
{
if(initialized) {
- return;
+ return FAIL;
}
initialized = TRUE;
// FIXME: Implement.
+ return SUCCESS;
}