diff options
| author | Vasil Zlatanov <v@skozl.com> | 2017-05-03 23:19:57 +0100 | 
|---|---|---|
| committer | Vasil Zlatanov <v@skozl.com> | 2017-05-03 23:19:57 +0100 | 
| commit | 7d23bf04971c1a509ccb124768740ae86b8eda7a (patch) | |
| tree | 53fc20a660d5d0ba0c140b58f045ba5923e2bcae /src | |
| parent | 2f5dadf484daf6a37a515c9fbfc11b9045b5f82c (diff) | |
| download | e2-switch-7d23bf04971c1a509ccb124768740ae86b8eda7a.tar.gz e2-switch-7d23bf04971c1a509ccb124768740ae86b8eda7a.tar.bz2 e2-switch-7d23bf04971c1a509ccb124768740ae86b8eda7a.zip | |
Renamed main
Diffstat (limited to 'src')
| -rw-r--r-- | src/switch.cpp | 104 | 
1 files changed, 0 insertions, 104 deletions
| diff --git a/src/switch.cpp b/src/switch.cpp deleted file mode 100644 index 2381640..0000000 --- a/src/switch.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include "mbed.h" -#include "Adafruit_SSD1306.h" - -//Switch input definition -#define SW_PIN p22 - -//Sampling period for the switch oscillator (us) -#define SW_PERIOD 20000 - -//Display interface pin definitions -#define D_MOSI_PIN p5 -#define D_CLK_PIN p7 -#define D_DC_PIN p8 -#define D_RST_PIN p9 -#define D_CS_PIN p10 - -//an SPI sub-class that sets up format and clock speed -class SPIPreInit:public SPI { - public: -	SPIPreInit(PinName mosi, PinName miso, PinName clk):SPI(mosi, miso, clk) { -		format(8, 3); -		frequency(2000000); -	}; -}; - -//Interrupt Service Routine prototypes (functions defined below) -void sedge(); -void tout(); - -//Output for the alive LED -DigitalOut alive(LED1); - -//External interrupt input from the switch oscillator -InterruptIn swin(SW_PIN); - -//Switch sampling timer -Ticker swtimer; - -//Registers for the switch counter, switch counter latch register and update flag -volatile uint16_t scounter = 0; -volatile uint16_t scount = 0; -volatile uint16_t update = 0; - -//Initialise SPI instance for communication with the display -SPIPreInit gSpi(D_MOSI_PIN, NC, D_CLK_PIN);	//MOSI,MISO,CLK - -//Initialise display driver instance -Adafruit_SSD1306_Spi gOled1(gSpi, D_DC_PIN, D_RST_PIN, D_CS_PIN, 64, 128);	//SPI,DC,RST,CS,Height,Width - -int main() -{ -	//Initialisation -	gOled1.setRotation(2);	//Set display rotation - -	//Attach switch oscillator counter ISR to the switch input instance for a rising edge -	swin.rise(&sedge); - -	//Attach switch sampling timer ISR to the timer instance with the required period -	swtimer.attach_us(&tout, SW_PERIOD); - -	//Write some sample text -	gOled1.printf("%ux%u OLED Display\r\n", gOled1.width(), -		      gOled1.height()); - -	//Main loop -	while (1) { -		//Has the update flag been set?        -		if (update) { -			//Clear the update flag -			update = 0; - -			//Set text cursor -			gOled1.setTextCursor(0, 0); - -			//Write the latest switch osciallor count -			gOled1.printf("\n%05u  ", scount); - -			//Copy the display buffer to the display -			gOled1.display(); - -			//Toggle the alive LED -			alive = !alive; -		} - -	} -} - -//Interrupt Service Routine for rising edge on the switch oscillator input -void sedge() -{ -	//Increment the edge counter -	scounter++; -} - -//Interrupt Service Routine for the switch sampling timer -void tout() -{ -	//Read the edge counter into the output register -	scount = scounter; -	//Reset the edge counter -	scounter = 0; -	//Trigger a display update in the main loop -	update = 1; -} | 
