75 lines
1.7 KiB
C++
Executable File
75 lines
1.7 KiB
C++
Executable File
//
|
|
// Created by Guangzong Chen on 8/5/23.
|
|
//
|
|
#include "custom_prephrals.h"
|
|
#include "bsp.h"
|
|
GpioPin<&pc, 3> led1;
|
|
GpioPin<&pc, 4> led2;
|
|
GpioPin<&pc, 5> led3;
|
|
GpioPin<&pb, 4> i2c3_sda;
|
|
GpioPin<&pc, 0> i2c3_scl;
|
|
GpioPin<&pb, 0> cam_pdwn;
|
|
GpioPin<&pb, 1> cam_resetb;
|
|
|
|
GpioPin<&pa, 8> cam_xclk; // tim1 ch1
|
|
GpioPin<&pc, 6> cam_d0;
|
|
GpioPin<&pc, 7> cam_d1;
|
|
GpioPin<&pc, 8> cam_d2;
|
|
GpioPin<&pc, 9> cam_d3;
|
|
GpioPin<&pc, 11> cam_d4;
|
|
GpioPin<&pb, 6> cam_d5;
|
|
GpioPin<&pb, 8> cam_d6;
|
|
GpioPin<&pb, 9> cam_d7;
|
|
GpioPin<&pb, 7> cam_vsync;
|
|
GpioPin<&pa, 4> cam_hsync;
|
|
GpioPin<&pa, 6> cam_pclk;
|
|
GpioPin<&pb, 2> cus_btn;
|
|
|
|
GpioPin<&pc, 1> sd_ck;
|
|
GpioPin<&pa, 0> sd_cmd;
|
|
GpioPin<&pb, 14> sd_d0;
|
|
|
|
void setup_pins() {
|
|
led1.setup(), led2.setup(), led3.setup();
|
|
i2c3_sda.setup(AF, 4, OPEN_DRAIN, LL_PULLUP);
|
|
i2c3_scl.setup(AF, 4, OPEN_DRAIN, LL_PULLUP);
|
|
cam_pdwn.setup(), cam_resetb.setup();
|
|
cam_xclk.setup(AF, 1);
|
|
cam_d0.setup(AF, 10);
|
|
cam_d1.setup(AF, 10);
|
|
cam_d2.setup(AF, 10);
|
|
cam_d3.setup(AF, 4);
|
|
cam_d4.setup(AF, 10);
|
|
cam_d5.setup(AF, 10);
|
|
cam_d6.setup(AF, 10);
|
|
cam_d7.setup(AF, 10);
|
|
cam_pclk.setup(AF, 4);
|
|
|
|
cam_hsync.setup(AF, 10);
|
|
cam_vsync.setup(AF, 10);
|
|
|
|
cus_btn.setup(INPUT, 0, PULL_PUSH, LL_PULLUP); // The circuit should be change
|
|
|
|
// delay.ms(100, true);
|
|
|
|
sd_ck.setup(AF, 12);
|
|
sd_cmd.setup(AF, 12);
|
|
sd_d0.setup(AF, 12);
|
|
}
|
|
|
|
void setup_timer() {
|
|
tim1.init_default();
|
|
tim1.set_pwm(CH1, 4, 4);
|
|
tim1.enable_output(CH1); // tim1 init_old
|
|
}
|
|
|
|
|
|
void cam_board_init(){
|
|
system_init();
|
|
setup_prepherials();
|
|
setup_pins(), setup_timer(), cam_i2c.init();
|
|
cam_pdwn.set_low();
|
|
cam_resetb.set_high();
|
|
|
|
}
|