Hallo zusammen, ich wollte die Duty Cycle(Ton) eines PWM-Signales mit input capture mode messesn. Es klappt leider nur fast bis 65% der Duty cycle. sonst wird die T_off gemessen statt Ton. hat jemand eine Idee was man dieses Problem lösen kann? Timer Konfiguration ist im Ahnhand zu sehen. Timer Initialization: HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1); HAL_TIM_Base_Start(&htim5); HAL_TIM_IC_Start_IT(&htim5, TIM_CHANNEL_1); Timer Interrupt: void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { /* Prevent unused argument(s) compilation warning */ UNUSED(htim); if(htim==&htim5){ // HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_SET); capture= HAL_TIM_ReadCapturedValue(&htim5,TIM_CHANNEL_1); __HAL_TIM_SetCounter(&htim5,0); } }
Soweit ich sehen kann misst du die Zeit zwischen zwei Flanken. Und du verwendest sowohl die steigenden als auch die fallenden Flanken. Wie war denn dein Plan, sicherzustellen, dass die Messung nur bei der steigenden Flanke beginnt? Ich möchte erwähnen, dass man den Chip selber anhand des Referenzhandbuches programmieren kann, wenn man mit der HAL nicht weiter kommt.
Stefanus F. schrieb: > Soweit ich sehen kann misst du die Zeit zwischen zwei Flanken. Und du verwendest sowohl die steigenden als auch die fallenden Flanken. ganz genau. > Wie war denn dein Plan, sicherzustellen, dass die Messung nur bei der > steigenden Flanke beginnt? kein Plan um ehrlich zu sein > Ich möchte erwähnen, dass man den Chip selber anhand des > Referenzhandbuches programmieren kann, wenn man mit der HAL nicht weiter > kommt. ich weiß aber kann das nicht. LG
Vielleicht erfasst du einfach beide Zeitspannen (High und Low) und verwirfst die falsche nach der Messung.
Stefanus F. schrieb: > Vielleicht erfasst du einfach beide Zeitspannen (High und Low) und > verwirfst die falsche nach der Messung. das heißt 2 Timers oder (:
Nein nur zwei channel des selben timers einen auf rising und einen auf falling
Oder du fragst nach jeder Messung, ob das Signal gerade High oder Low ist. Die Messung davor hatte dann den anderen Pegel, daran kannst du entscheiden, ob du das Ergebnis verwenden oder verwerfen willst. Vorraussetzung wäre dabei allerdings, dass das Signal nicht allzu schnell seinen Pegel wechselt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.