99#![ no_std]
1010
1111mod utils;
12- extern crate cortex_m_rt as rt;
1312
14- use rt :: entry;
13+ use cortex_m_rt :: entry;
1514
1615#[ entry]
1716fn main ( ) -> ! {
18- use hal:: comparator:: { refint_input, ComparatorExt , ComparatorSplit , Config , Hysteresis } ;
19- use hal:: gpio:: { GpioExt , PushPull } ;
20- use hal:: rcc:: RccExt ;
21- use hal:: stm32;
22- use stm32g4xx_hal as hal;
23-
24- let dp = stm32:: Peripherals :: take ( ) . expect ( "cannot take peripherals" ) ;
17+ use stm32g4xx_hal:: {
18+ comparator:: { refint_input, ComparatorExt , ComparatorSplit , Config , Hysteresis } ,
19+ gpio:: { GpioExt , PushPull } ,
20+ pac,
21+ rcc:: RccExt ,
22+ } ;
23+
24+ let dp = pac:: Peripherals :: take ( ) . expect ( "cannot take peripherals" ) ;
2525 let mut rcc = dp. RCC . constrain ( ) ;
2626
2727 let gpioa = dp. GPIOA . split ( & mut rcc) ;
2828
2929 let ( comp1, comp2, ..) = dp. COMP . split ( & mut rcc) ;
3030
31- let pa1 = gpioa. pa1 . into_analog ( ) ;
32- let pa0 = gpioa. pa0 . into_analog ( ) ;
33- let comp1 = comp1. comparator ( pa1, pa0, Config :: default ( ) , & rcc. clocks ) ;
31+ let comp1 = comp1. comparator ( gpioa. pa1 , gpioa. pa0 , Config :: default ( ) , & rcc. clocks ) ;
3432 let comp1 = comp1. enable ( ) ;
3533
3634 // led1 pa1 will be updated manually when to match comp1 value
3735 let mut led1 = gpioa. pa5 . into_push_pull_output ( ) ;
3836
39- let pa7 = gpioa. pa7 . into_analog ( ) ;
4037 let comp2 = comp2. comparator (
41- pa7,
38+ gpioa . pa7 ,
4239 refint_input:: VRefintM12 ,
4340 Config :: default ( )
4441 . hysteresis ( Hysteresis :: None )
@@ -53,9 +50,6 @@ fn main() -> ! {
5350
5451 loop {
5552 // Read comp1 output and update led1 accordingly
56- match comp1. output ( ) {
57- true => led1. set_high ( ) ,
58- false => led1. set_low ( ) ,
59- }
53+ led1. set_state ( comp1. output ( ) . into ( ) ) ;
6054 }
6155}
0 commit comments