void ADNS_Configuration(void) { ON_CS(); writr_register(Configuration_bits,0x10); //设置分辨率 1600 //若Bit 4为0,则为400点每英寸 delay_ms(3); writr_register(Extended_Config,0x01); delay_ms(3); if(read_busy()!=1) {//设为3000帧每秒 OFF_CS(); //突发_写模式 delay_ms(2); ON_CS(); SPI_SendReceive(Frame_Period_Max_Bound_Lower+0x80); //设置帧率 //先写低位再写高位 SPI_SendReceive(0x40); // C0 5000帧率 SPI_SendReceive(Frame_Period_Max_Bound_Upper+0x80); SPI_SendReceive(0x1f); // 12 } clear_motion(); OFF_CS(); }
void ADNS_Configuration(void) { ON_CS(); writr_register(Configuration_bits,0x10); //设置分辨率 1600 //若Bit 4为0,则为400点每英寸 delay_ms(3); writr_register(Extended_Config,0x01); //设置为固定帧率,其值在Frame_Period_Max_Bound寄存器中 delay_ms(3); if(read_busy()!=1) { //设为3000帧每秒,3000=24MHz/0x1f40,0x1f40=8000 OFF_CS(); //突发_写模式 delay_ms(2); ON_CS(); SPI_Simu_RW(Frame_Period_Max_Bound_Lower+0x80); //设置帧率 //先写低位再写高位,若是读的话先读高位再读低位 SPI_Simu_RW(0x40); // C0, 5000帧率 // delay_us(75); SPI_Simu_RW(Frame_Period_Max_Bound_Upper+0x80); SPI_Simu_RW(0x1f); // 12 } clear_motion(); OFF_CS(); }