Designing low-power, cloud-connected IoT devices with PSoC® 6 MCU’s and WICED® Wi-Fi/Bluetooth
Summary
In this lesson we will build your first WICED Studio project (the blinking LED) and make sure that you can program the development kit. Then we will update the project to include a thread for managing the CapSense block. This thread will be carried into the other projects.
To implement this lesson I will follow these steps:
- Start WICED Studio 6.2
- Select 43xxx
- Create a folder called L2CapSense
- Create main.c and build a blinking LED thread
- Create L2CapSense.mk
- Create a make target
- Build Program and test it
- Create CapSenseThread.c
- Create CapSenseThread.h
- Update main.c
- Update the makefile
- Build Program and Test
Create the L2CapSense Folder
Create main.c
Right click on the folder and create a new file. Name it L2CapSense
Insert the blinking LED code into main.c
#include "wiced.h" /****************************************************** * Macros ******************************************************/ /****************************************************** * Constants ******************************************************/ /****************************************************** * Enumerations ******************************************************/ /****************************************************** * Type Definitions ******************************************************/ /****************************************************** * Structures ******************************************************/ /****************************************************** * Static Function Declarations ******************************************************/ /****************************************************** * Variable Definitions ******************************************************/ wiced_thread_t blinkThreadHandle; /****************************************************** * Function Definitions ******************************************************/ void pdlBlinkThread(wiced_thread_arg_t arg) { while(1) { Cy_GPIO_Inv(GPIO_PRT0,3); wiced_rtos_delay_milliseconds(500); } } void application_start( ) { WPRINT_APP_INFO(("Started Application\n")); wiced_rtos_create_thread(&blinkThreadHandle,7,"Blink Thread",pdlBlinkThread,500,0); }
Create L2CapSense.mk
Create a makefile called L2CapSense.mk
Put the build information into the L2CapSense.mk
NAME := App_WStudio_L2CapSense $(NAME)_SOURCES := main.c
Create a Make Target to run the project
Build and Test the Blinking LED
Create/Edit a File called CapSenseThread.c
#include "wiced.h" void capSenseThread(wiced_thread_arg_t arg) { CapSense_Start(); CapSense_ScanAllWidgets(); while(1) { if(!CapSense_IsBusy()) { CapSense_ProcessAllWidgets(); if(CapSense_IsWidgetActive(CapSense_BUTTON0_WDGT_ID)) { WPRINT_APP_INFO(("Button 0 Active\n")); } if(CapSense_IsWidgetActive(CapSense_BUTTON1_WDGT_ID)) { WPRINT_APP_INFO(("Button 1 Active\n")); } uint32_t val = CapSense_GetCentroidPos(CapSense_LINEARSLIDER0_WDGT_ID); if(val < 0xFFFF) { WPRINT_APP_INFO(("Slider = %d\n",(int)val)); } CapSense_ScanAllWidgets(); } wiced_rtos_delay_milliseconds(25); // Poll every 25ms (actual scan time ~8ms) } }
Create/Edit a File Called CapSenseThread.h
#pragma once #include "wiced.h" void capSenseThread(wiced_thread_arg_t arg);
Update main.c
#include "wiced.h" #include "CapSenseThread.h"
Add a variable to hold the handle for the capSenseThread at the top of main.c
wiced_thread_t capSenseThreadHandle;
Update the main function to start the CapSenseThread
void application_start( ) { WPRINT_APP_INFO(("Started Application\n")); wiced_rtos_create_thread(&blinkThreadHandle,7,"Blink Thread",pdlBlinkThread,500,0); wiced_rtos_create_thread(&capSenseThreadHandle,7,"CapSense Thread",capSenseThread,1024,0); }
Update the L2CapsenseThread.mk
NAME := App_WStudio_L2CapSense $(NAME)_SOURCES := main.c \ CapSenseThread.c
Build, Program and Test the CapSenseThread
No comment yet, add your voice below!