#実現させること
STMマイコンでデューティー比50%のPWM信号を2つ発生させ、それにデューティー比は変更せずにPWM信号を出力する方法を探しています。
#困っていること・試したこと
デューティー比が90°ずれたPWM信号を出力させることはできたのですが、自分が実現させたいのとは異なるようです。これだとデューティ比は可変できるけど位相が可変できません。
(ソースコード参照)
TIM1だけだと実現ができないのでしょうか?一応いろいろと試したのですが、海外の質問サイトにも同じような質問があるのですが、途中で質問が終了してしまっています。
何か不足してるレジスタの項目などがあるのでしょうか?
参考にしたSTM32のリファレンスマニュアル
rm0316
AN4776
#環境
PC:Mac Pro Big Sur
開発環境:STM32CubeIDE
マイコンボード:Nucleo-F303K8
//main.c の USER CODE 2 の部分のみ TIM1->CR1 = 1UL<<7 /* ARPEビット*/ | 0b10UL<<5 /*CMSビット */; TIM1->CCMR1 = 0UL<<3 /*OC1PE */ | 0b110UL<<4 /*OC1M */| 0b1UL<<11 /*OC2PE*/| 0b110UL<<12 /*OC2M */; TIM1->CCER = 1UL<<0 /*CC1E */ | 1UL<<2 /* CC1NE */ | 1UL<<4 /* CC2NE */ | 1UL<<6 /* CC3E */ ; TIM1->BDTR = 1UL<<15 /*MOEビット*/ | 1UL<<11 /*OSSR */ | 1UL<<10 /*OSSI */ | 10UL /* DTG */; uint32_t Phase_shift_cnt = 4000; SET_BIT(TIM1->CR1,TIM_CR1_UDIS); TIM1->CCR1 = 5000 - Phase_shift_cnt; TIM1->CCR2 = 5000 + Phase_shift_cnt; TIM1->CCR3 = 5000 + Phase_shift_cnt; TIM1->CCR4 = 5000 - Phase_shift_cnt; CLEAR_BIT(TIM1->CR1,TIM_CR1_UDIS); TIM1->BDTR |= 1UL<<15;// TIM1->CNT = 0;// TIM1->EGR = 1UL; // TIM1->CR1 |= 1UL; //
回答2件
あなたの回答
tips
プレビュー