示例#1
0
文件: main.cpp 项目: Kreyl/nute
void Init() {
    Uart.Init(115200);
    Uart.Printf("\rFirefly2\r");
    Led.Init();
    Led.SetColorSmoothly((Color_t){255, 255, 255});
    Adc.Init();
}
示例#2
0
文件: kl_adc.cpp 项目: mavka/mic_amp
void AdcTxIrq(void *p, uint32_t flags) {
    dmaStreamDisable(ADC_DMA);
    Adc.Stop();
    // Signal event
    chSysLockFromISR();
    App.SignalEvtI(EVT_ADC_DONE);
    chSysUnlockFromISR();
}
示例#3
0
文件: main.cpp 项目: Kreyl/nute
int main(void) {
    // ==== Init clock system ====
    Clk.UpdateFreqValues();
    Clk.SetupFlashLatency();
    // ==== Init OS ====
    halInit();
    chSysInit();
    // ==== Init Hard & Soft ====
    Init();

    while(TRUE) {
        chThdSleepMilliseconds(360);
        uint32_t rslt = 0;
        for(uint8_t i=0; i<8; i++) {
            Adc.StartConversion();
            while(!Adc.ConversionCompleted());
            rslt += Adc.Result();
        }
        rslt >>= 3;
        Uart.Printf("Adc: %u\r", rslt);
        if(rslt > ADC_VALUE_TO_OFF) Led.SetColorSmoothly(clBlack);
        if(rslt < ADC_VALUE_TO_ON)  Led.SetColorSmoothly(LED_COLOR);
    }
}
示例#4
0
// =============================== Init ========================================
static inline void ShowChargeLevel() {
    Adc_t Adc;
    uint32_t rslt = 0;
    Adc.Init();
    for(uint8_t i=0; i<8; i++) {
        Adc.StartConversion();
        while(!Adc.ConversionCompleted()) chThdSleepMilliseconds(20);
        rslt += Adc.Result();
    }
    Adc.Disable();
    Adc.ClockOff();
    rslt >>= 3;
    rslt = (rslt * 16225) / 10000;
    Uart.Printf("mv=%u\r", rslt);
    // Show charge
    BlueLed.On(LED_LOW);    // Always
    if(rslt > 3700) RedLed.On   (LED_LOW);
    if(rslt > 3800) YellowLed.On(LED_LOW);
    if(rslt > 3900) GreenLed.On (LED_LOW);
    if(rslt > 4050) WhiteLed.On (LED_LOW);
}
示例#5
0
// DMA irq
void SIrqDmaHandler(void *p, uint32_t flags) { Adc.IrqDmaHandler(); }