Added pdf documentation + header file and source file to, prepare io expander driver implementation
This commit is contained in:
parent
4480d67908
commit
447e2d08d8
BIN
Anaren_uart_example/Doc/A20737A-736703.pdf
Normal file
BIN
Anaren_uart_example/Doc/A20737A-736703.pdf
Normal file
Binary file not shown.
BIN
Anaren_uart_example/Doc/AnarenBCM20737.pdf
Normal file
BIN
Anaren_uart_example/Doc/AnarenBCM20737.pdf
Normal file
Binary file not shown.
Binary file not shown.
2
Anaren_uart_example/XRA1201.c
Normal file
2
Anaren_uart_example/XRA1201.c
Normal file
@ -0,0 +1,2 @@
|
||||
#include "XRA1201.h"
|
||||
|
8
Anaren_uart_example/XRA1201.h
Normal file
8
Anaren_uart_example/XRA1201.h
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef XRA1201_H
|
||||
#define XRA1201_H
|
||||
#include <inttypes.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <types.h>
|
||||
|
||||
#endif //XRA1201_H
|
@ -11,7 +11,7 @@
|
||||
########################################################################
|
||||
# Application sources.
|
||||
########################################################################
|
||||
APP_SRC = uart_example.c utils.c
|
||||
APP_SRC = uart_example.c utils.c XRA1201.c
|
||||
|
||||
########################################################################
|
||||
################ DO NOT MODIFY FILE BELOW THIS LINE ####################
|
||||
|
@ -43,6 +43,7 @@ const BYTE RED_LED = GPIO_PIN_P26;
|
||||
const BYTE GREEN_LED = GPIO_PIN_P27;
|
||||
const BYTE BLUE_LED = GPIO_PIN_P28;
|
||||
const BYTE BUZZER = GPIO_PIN_P14;
|
||||
const BYTE IOEXPAND_INT = GPIO_PIN_2;
|
||||
BLE_PROFILE_CFG puart_control_cfg = {0};
|
||||
|
||||
// Please note that all UUIDs need to be reversed when publishing in the database
|
||||
@ -73,6 +74,8 @@ BLE_PROFILE_CFG puart_control_cfg = {0};
|
||||
static void app(void);
|
||||
static void timer_cb(UINT32 value);
|
||||
static void fine_timer_cb(UINT32 value);
|
||||
static UINT8* showActivity(UINT8 *buffer);
|
||||
static void ioexpand_int_handler(void *data, UINT8 pin);
|
||||
|
||||
/******************************************************
|
||||
* Variables Definitions
|
||||
@ -97,8 +100,8 @@ const UINT8 gatt_database[] =
|
||||
|
||||
CHARACTERISTIC_UUID128_WRITABLE(0x0015, 0x0016, SERVICE_1_CHARACTERISTIC_3_UUID,
|
||||
LEGATTDB_CHAR_PROP_READ|LEGATTDB_CHAR_PROP_WRITE|LEGATTDB_CHAR_PROP_NOTIFY,
|
||||
LEGATTDB_PERM_READABLE|LEGATTDB_PERM_WRITABLE|LEGATTDB_PERM_WRITE_REQ, 16),
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
LEGATTDB_PERM_READABLE|LEGATTDB_PERM_WRITABLE|LEGATTDB_PERM_WRITE_REQ, 18),
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
|
||||
CHAR_DESCRIPTOR_UUID16_WRITABLE(0x17,
|
||||
UUID_DESCRIPTOR_CLIENT_CHARACTERISTIC_CONFIGURATION,
|
||||
@ -132,7 +135,8 @@ const UINT8 gatt_database[] =
|
||||
|
||||
BD_ADDR ble_device_addr = {0};
|
||||
uint8_t run = 1;
|
||||
uint16_t raw_temp = 0;
|
||||
uint8_t temp = 0.0;
|
||||
UINT8 activityBuffer[4] = {'.',' ',' ',0};
|
||||
char recvBuffer[20];
|
||||
BYTE numConnectedClients = 0;
|
||||
|
||||
@ -142,13 +146,13 @@ BYTE numConnectedClients = 0;
|
||||
static void serial_rxCb(void *unused)
|
||||
{
|
||||
UINT8 character = 0;
|
||||
static uint8_t i = 0;
|
||||
|
||||
uint8_t i = 0;
|
||||
|
||||
while (puart_rxFifoNotEmpty() && puart_read(&character))
|
||||
{
|
||||
puart_write(character);
|
||||
recvBuffer[i++ % 20] = character;
|
||||
bleapputils_delayUs(500); //Needed to let some time to the uart to receive the data
|
||||
}
|
||||
recvBuffer[i] = '\0';
|
||||
|
||||
@ -158,12 +162,14 @@ static void serial_rxCb(void *unused)
|
||||
P_UART_INT_ENABLE |= P_UART_ISR_RX_AFF_MASK;
|
||||
|
||||
if(memcmp(recvBuffer,"stop", 4) == 0)
|
||||
run = 0, i = 0;
|
||||
run = 0;
|
||||
else if(memcmp(recvBuffer,"start", 4) == 0)
|
||||
run = 1, i = 0;
|
||||
run = 1;
|
||||
}
|
||||
|
||||
if(strlen(recvBuffer) > 3)
|
||||
i = 0;
|
||||
static void ioexpand_int_handler(void *data, UINT8 pin)
|
||||
{
|
||||
puart_print("IO int\n");
|
||||
}
|
||||
|
||||
static void ble_link_up(void)
|
||||
@ -276,6 +282,30 @@ UINT32 uart_device_lpm_queriable(LowPowerModePollType type, UINT32 context)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Makes the litle dot move at the end of the temperature string.
|
||||
UINT8* showActivity(UINT8 *buffer)
|
||||
{
|
||||
if(buffer[0] == '.')
|
||||
{
|
||||
buffer[0] = ' ';
|
||||
buffer[1] = '.';
|
||||
buffer[2] = ' ';
|
||||
}
|
||||
else if(buffer[1] == '.')
|
||||
{
|
||||
buffer[0] = ' ';
|
||||
buffer[1] = ' ';
|
||||
buffer[2] = '.';
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer[0] = '.';
|
||||
buffer[1] = ' ';
|
||||
buffer[2] = ' ';
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
|
||||
void app(void)
|
||||
{
|
||||
devlpm_init();
|
||||
@ -303,9 +333,11 @@ void app(void)
|
||||
|
||||
bleprofile_Discoverable(HIGH_UNDIRECTED_DISCOVERABLE, ble_device_addr);
|
||||
|
||||
gpio_configurePin(PIN2PORT(RED_LED), PIN2PIN(RED_LED), GPIO_OUTPUT_ENABLE ,0);
|
||||
gpio_configurePin(PIN2PORT(GREEN_LED), PIN2PIN(GREEN_LED), GPIO_OUTPUT_ENABLE ,0);
|
||||
gpio_configurePin(PIN2PORT(BLUE_LED), PIN2PIN(BLUE_LED), GPIO_OUTPUT_ENABLE ,0);
|
||||
gpio_configurePin(PIN2PORT(RED_LED), PIN2PIN(RED_LED), GPIO_OUTPUT_ENABLE, GPIO_PIN_OUTPUT_LOW);
|
||||
gpio_configurePin(PIN2PORT(GREEN_LED), PIN2PIN(GREEN_LED), GPIO_OUTPUT_ENABLE, GPIO_PIN_OUTPUT_LOW);
|
||||
gpio_configurePin(PIN2PORT(BLUE_LED), PIN2PIN(BLUE_LED), GPIO_OUTPUT_ENABLE, GPIO_PIN_OUTPUT_LOW);
|
||||
gpio_configurePin(PIN2PORT(IOEXPAND_INT), PIN2PIN(IOEXPAND_INT), GPIO_INPUT_ENABLE | GPIO_PULL_UP | GPIO_EN_INT_FALLING_EDGE, GPIO_PIN_INPUT_HIGH);
|
||||
gpio_registerForInterrupt(NULL, ioexpand_int_handler, NULL);
|
||||
//Buzzer config
|
||||
aclk_configure(512000, ACLK1, ACLK_FREQ_24_MHZ);
|
||||
|
||||
@ -332,9 +364,8 @@ void timer_cb(UINT32 value)
|
||||
//I2C test
|
||||
uint8_t reg = 0xFE;
|
||||
uint8_t ManuID[2];
|
||||
uint16_t raw_temp = 0;
|
||||
|
||||
i2cm_init();
|
||||
i2cm_setSpeed(I2CM_SPEED_400KHZ);
|
||||
if(i2cm_comboRead(ManuID, 2, ®, 1, 0x40 << 1) == I2CM_SUCCESS)
|
||||
{
|
||||
puart_print("I2C comboRead success\n");
|
||||
@ -343,7 +374,8 @@ void timer_cb(UINT32 value)
|
||||
reg = 0x01;
|
||||
i2cm_comboRead(ManuID, 2, ®, 1, 0x40 << 1);
|
||||
raw_temp = (ManuID[0] << 6) + (ManuID[1] >> 2);
|
||||
puart_printf("Raw temp : 0x%02X%02X -> %u, %u\n", ManuID[0], ManuID[1], raw_temp, raw_temp / 32);
|
||||
temp = raw_temp / 32;
|
||||
puart_printf("Raw temp : 0x%02X%02X -> %u, %u\n", ManuID[0], ManuID[1], raw_temp, temp);
|
||||
}
|
||||
else
|
||||
puart_print("I2C comboRead failure\n");
|
||||
@ -360,8 +392,8 @@ void fine_timer_cb(UINT32 value)
|
||||
{
|
||||
BLEPROFILE_DB_PDU db_pdu;
|
||||
|
||||
UINT8 buffer[15];
|
||||
sprintf((char*)buffer,"temp : %u", raw_temp);
|
||||
UINT8 buffer[18];
|
||||
sprintf((char*)buffer,"temp : %u C%s", temp, showActivity(activityBuffer));
|
||||
|
||||
puart_printf("%s\nrecvBuffer : #%s#\n",buffer, recvBuffer);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user