Питание какое? Сервам нужно 6В, на 5 они, бывает, дурят.
Судя по этому:
- Код: Выделить всё • Развернуть
Assembly Code Example(1)
TIM16_ReadTCNT1:
; Save global interrupt flag
in r18,SREG
; Disable interrupts
cli
; Read TCNT1 into r17:r16
in r16,TCNT1L
in r17,TCNT1H
; Restore global interrupt flag
out SREG,r18
ret
C Code Example(1)
unsigned int TIM16_ReadTCNT1( void )
{
unsigned char sreg;
unsigned int i;
/* Save global interrupt flag */
sreg = SREG;
/* Disable interrupts */
_CLI();
/* Read TCNT1 into i */
i = TCNT1;
/* Restore global interrupt flag */
SREG = sreg;
return i;
}
, можно делать вместо
- Код: Выделить всё • Развернуть
OCR1AH=0x75;
OCR1AL=0x00;
вот так:
- Код: Выделить всё • Развернуть
OCR1A=0x7500;
, смотрите параграф Accessing 16-bit Registers
Вот это не пойму, что: Writing the OCR1x Registers must be done via the TEMP Register
since the compare of all 16 bits is done continuously., атмегаводы пусьб подскажут
Ну и вот, надо определить режим работы, чтобы при достижении compare vales таймер обнулялся (хотя это странный режим работы для пиковода
))
Clear Timer on
Compare Match (CTC)
Mode
In Clear Timer on Compare or CTC mode (WGM13:0 = 4 or 12), the OCR1A or ICR1 Register
are used to manipulate the counter resolution. In CTC mode the counter is cleared to zero when
the counter value (TCNT1) matches either the OCR1A (WGM13:0 = 4) or the ICR1 (WGM13:0 =
12). The OCR1A or ICR1 define the top value for the counter, hence also its resolution. This
mode allows greater control of the compare match output frequency. It also simplifies the operation
of counting external events.
The timing diagram for the CTC mode is shown in Figure 45. The counter value (TCNT1)
increases until a compare match occurs with either OCR1A or ICR1, and then counter (TCNT1)
is cleared.