mirror of
				https://github.com/eclipse/upm.git
				synced 2025-10-31 15:15:07 +03:00 
			
		
		
		
	rotaryencoder: add C driver and example; FTI; C++ wraps C
Signed-off-by: Jon Trulson <jtrulson@ics.com>
This commit is contained in:
		| @@ -125,6 +125,7 @@ add_example (biss0001) | ||||
| add_example (bmi160) | ||||
| add_example (jhd1313m1) | ||||
| add_example (lm35) | ||||
| add_example (rotaryencoder) | ||||
|  | ||||
| # Custom examples | ||||
| add_custom_example (nmea_gps_i2c-example-c nmea_gps_i2c.c nmea_gps) | ||||
|   | ||||
							
								
								
									
										69
									
								
								examples/c/rotaryencoder.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								examples/c/rotaryencoder.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| /* | ||||
|  * Author: Jon Trulson <jtrulson@ics.com> | ||||
|  * Copyright (c) 2015 Intel Corporation. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining | ||||
|  * a copy of this software and associated documentation files (the | ||||
|  * "Software"), to deal in the Software without restriction, including | ||||
|  * without limitation the rights to use, copy, modify, merge, publish, | ||||
|  * distribute, sublicense, and/or sell copies of the Software, and to | ||||
|  * permit persons to whom the Software is furnished to do so, subject to | ||||
|  * the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be | ||||
|  * included in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||||
|  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
|  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||||
|  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||||
|  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||||
|  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||||
|  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| #include <unistd.h> | ||||
| #include <stdio.h> | ||||
| #include <signal.h> | ||||
|  | ||||
| #include "rotaryencoder.h" | ||||
| #include "upm_utilities.h" | ||||
|  | ||||
| int shouldRun = true; | ||||
|  | ||||
| void sig_handler(int signo) | ||||
| { | ||||
|     if (signo == SIGINT) | ||||
|         shouldRun = false; | ||||
| } | ||||
|  | ||||
|  | ||||
| int main() | ||||
| { | ||||
|     signal(SIGINT, sig_handler); | ||||
|  | ||||
| //! [Interesting] | ||||
|     // Instantiate a Grove Rotary Encoder, using signal pins D2 and D3 | ||||
|     rotaryencoder_context sensor = rotaryencoder_init(2, 3); | ||||
|  | ||||
|     if (!sensor) | ||||
|     { | ||||
|         printf("rotaryencoder_init() failed.\n"); | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     while (shouldRun) | ||||
|     { | ||||
|         printf("Position: %d\n", rotaryencoder_get_position(sensor)); | ||||
|  | ||||
|         upm_delay_ms(100); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     printf("Exiting...\n"); | ||||
|  | ||||
|     rotaryencoder_close(sensor); | ||||
|  | ||||
| //! [Interesting] | ||||
|     return 0; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Jon Trulson
					Jon Trulson