-diese Library dient zur Messung einer
Modellbau-Servo-Impulszeit
-es wird ein 16bit-Timer und ein Interrupt-Eingang benutzt
Funktionen :
1 2 | void MK3_INIT_SERVOMESS(void); // Initialisierung unsigned int MK3_SERVOMESS_READ_US(void); // Gemessener Impulswert in us |
Beispiel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | //----------------------------------------------------------------------------- // Title : bsp_ub069_mk3_servomess //----------------------------------------------------------------------------- // Funktion : Modellbau-Servo-Impuls-Messer // Schaltung : myAVR MK3 //----------------------------------------------------------------------------- // Prozessor : ATMega2560 // Takt : 16 MHz // Sprache : C // Date : 06.02.2013 // Version : 1.0 // Autor : UB //----------------------------------------------------------------------------- #define F_CPU 16000000 #include <avr/io.h> #include <ub_mk3_2560/MK3_2560_SERVO_MESS.h> #include <ub_mk3_2560/MK3_2560_LCD.h> //----------------------------------------------------------------------------- // Hinweis : Jumper C+A muss gesetzt sein // > Modellbau-Servo-Signal muss an Port-D Bit4 angeschlossen sein // > Servo-Impulszeit wird am Display angezeigt //----------------------------------------------------------------------------- int main (void) { unsigned int us_wert; MK3_INIT_LCD(); MK3_LCD_CLEAR(); MK3_LCD_LIGHT(true); MK3_LCD_STRING_AT(0,0,"Servo-Impuls-Messung"); MK3_INIT_SERVOMESS(); // initialisierung while (true) { // Servo-Impuls messen us_wert=MK3_SERVOMESS_READ_US(); if(us_wert<SERVOMESS_IMPULS_OK) { // wenn Impuls OK MK3_LCD_STRING_AT(0,16,"Impuls [us] ="); MK3_LCD_PRINT_UINT(us_wert); MK3_LCD_STRING_AT(0,24," "); } else { // Fehleranzeige if(us_wert==SERVOMESS_WAITING) MK3_LCD_STRING_AT(0,24,"Wait"); if(us_wert==SERVOMESS_IDLE) MK3_LCD_STRING_AT(0,24,"Idle"); if(us_wert==SERVOMESS_TOOHIGH) MK3_LCD_STRING_AT(0,24,"High"); if(us_wert==SERVOMESS_OVF) MK3_LCD_STRING_AT(0,24,"OVF "); } } return 0; } |
Hier die Library zum download :