volatile uint32_t tick = 0;
#define F_CPU 16000000UL // 16MHz
//Interruption
ISR_TIM1(TIM1_OVF) {
ticks += systick(); // increase counter upon 65535 when overflowed
TIM1_SR1 &= ~1; // clear all interrupt flags
}
uint32_t systick() {
return (uint32_t)(TIM1_CNTRH << 8) | TIM1_CNTRL;
}
uint32_t millis() {
return ticks + (systick() / (F_CPU / 1000));
}
uint32_t micros() {
return ticks + (systick() / (F_CPU / 1000000ul));
}
void tim1_init(void) {
// 1MHz = 1uS
TIM1_PSCRH = 0x00;
TIM1_PSCRL = 0x0F;
TIM1_IER = 0x01; // Enable interrups
TIM1_CR1 = 0x87; //((1 << 7) | (1 << 2) | (1 << 0)); //auto-reload + interrupt on overflow + enable
}
Увеличить скорость вращения винтов.
Увеличить угол атаки лопасти.
Чушь какая-то. Чем больше оборотов при прочих равных, тем больше подъемная сила. А уж на скорость вы ее будете тратить, или на грузоподъемность - дело ваше.