@@ -28,8 +28,10 @@ fn main() -> ! {
2828 delay:: SYSTDelayExt ,
2929 dma:: { self , config:: DmaConfig , stream:: DMAExt , TransferExt } ,
3030 gpio:: { gpioa:: PA8 , gpioa:: PA9 , Alternate , GpioExt , AF13 } ,
31+ hrtim:: compare_register:: HrCompareRegister ,
3132 hrtim:: control:: HrControltExt ,
3233 hrtim:: output:: HrOutput ,
34+ hrtim:: timer:: HrTimer ,
3335 hrtim:: HrPwmAdvExt ,
3436 hrtim:: Pscl4 ,
3537 pwr:: PwrExt ,
@@ -111,18 +113,22 @@ fn main() -> ! {
111113 //out1 | | | |
112114 // | | | |
113115 // -------- ---------- --------
116+ let period = 0xFFFF ;
114117 let ( hr_control, ..) = dp. HRTIM_COMMON . hr_control ( & mut rcc) . wait_for_calibration ( ) ;
115118 let mut hr_control = hr_control. constrain ( ) ;
116- let ( timer, ( cr1, _cr2, cr3, cr4) , ( mut out1, mut out2) ) = dp
119+ let ( mut timer, ( cr1, _cr2, mut cr3, mut cr4) , ( mut out1, mut out2) ) = dp
117120 . HRTIM_TIMA
118121 . pwm_advanced ( ( pin_a, pin_b) , & mut rcc)
119122 . prescaler ( prescaler)
120- . period ( 0xFFFF )
123+ . period ( period )
121124 // alternated every period with one being
122125 // inactive and the other getting to output its wave form
123126 // as normal
124127 . finalize ( & mut hr_control) ;
125128
129+ cr3. set_duty ( period / 3 ) ;
130+ cr4. set_duty ( ( 2 * u32:: from ( period) / 3 ) as u16 ) ;
131+
126132 hr_control. enable_adc_trigger1_source ( & cr3) ;
127133 hr_control. enable_adc_trigger1_source ( & cr4) ;
128134
@@ -135,6 +141,8 @@ fn main() -> ! {
135141 out1. enable ( ) ;
136142 out2. enable ( ) ;
137143
144+ timer. start ( & mut hr_control) ;
145+
138146 loop {
139147 let mut b = [ 0_u16 ; 4 ] ;
140148 let r = transfer. read_exact ( & mut b) ;
@@ -149,6 +157,6 @@ fn main() -> ! {
149157 VREF ,
150158 adc:: config:: Resolution :: Twelve ,
151159 ) ;
152- info ! ( "temp: {}℃C" , temp) ; // Note: Temperature seems quite low...
160+ info ! ( "temp: {}℃C" , temp) ;
153161 }
154162}
0 commit comments