PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 50uS Timer fuer XC16x



senmeis
18.08.2010, 10:49
Hallo,

ich möchte einen Timer von 50 uS für den XC16x einrichten. Mit dem Tool "DAvE" habe ich folgenden Code generiert.


void GPT1_vInit(void)
{
// USER CODE BEGIN (Init,2)
// USER CODE END
/// -----------------------------------------------------------------------
/// Configuration of Timer Block Prescaler 1:
/// -----------------------------------------------------------------------
/// - prescaler for timer block 1 is 8

/// -----------------------------------------------------------------------
/// Configuration of the GPT1 Core Timer 3:
/// -----------------------------------------------------------------------
/// - timer 3 works in timer mode
/// - external up/down control is disabled
/// - prescaler factor is 8
/// - up/down control bit is set
/// - alternate output function T3OUT (P3.3) is disabled
/// - timer 3 output toggle latch (T3OTL) is set to 0
GPT12E_T3CON = 0x0080; // load timer 3 control register
GPT12E_T3 = 0x007D; // load timer 3 register
/// -----------------------------------------------------------------------
/// Configuration of the GPT1 Auxiliary Timer 2:
/// -----------------------------------------------------------------------
/// - timer 2 works in timer mode
/// - external up/down control is disabled
/// - prescaler factor is 8
/// - up/down control bit is reset
/// - timer 2 run bit is reset
GPT12E_T2CON = 0x0000; // load timer 2 control register
GPT12E_T2 = 0x0000; // load timer 2 register
/// -----------------------------------------------------------------------
/// Configuration of the GPT1 Auxiliary Timer 4:
/// -----------------------------------------------------------------------
/// - timer 4 works in timer mode
/// - external up/down control is disabled
/// - prescaler factor is 8
/// - up/down control bit is reset
/// - timer 4 run bit is reset
GPT12E_T4CON = 0x0000; // load timer 4 control register
GPT12E_T4 = 0x0000; // load timer 4 register
/// -----------------------------------------------------------------------
/// Configuration of the used GPT1 Port Pins:
/// -----------------------------------------------------------------------

/// -----------------------------------------------------------------------
/// Configuration of the used GPT1 Interrupts:
/// -----------------------------------------------------------------------
/// timer 3 service request node configuration:
/// - timer 3 interrupt priority level (ILVL) = 3
/// - timer 3 interrupt group level (GLVL) = 0
/// - timer 3 group priority extension (GPX) = 0
GPT12E_T3IC = 0x004C;

// USER CODE BEGIN (GPT1_Function,3)
// USER CODE END
GPT12E_T3CON_T3R = 1; // set timer 3 run bit
} // End of function GPT1_vInit

Ist dies soweit richtig?

Weitere Informationen über den Timer:
Systemtakt = 20 MHz

MfG
Senmeis