[an error occurred while processing this directive]
|
..Начинающий,
пишу в COdeVisionAVR и эмулирую в протеусе...
В Евстифееве дана такая формула для определения частоты генерируемого сигнала в режиме СТС (сброс при совпадении):
Focn=fclk/2*N(1+OCRn)
Вообще простая формула, но может константы не так подставляю?..
fclk=10^6/1024 (тактовую на кдел.)
N=1024 (N-коэф. деления предделителя)
Ну и в ОCRn - заношу const.
Допустим заношу ff в OCRn (2-й таймер, 8 разрядов), протеус показывает 15 Гц...
А если 01 то 1953 Гц...ПОчему?
Точно что-то не так считаю.....а что не так?
Спасибо!
...может в программе дело?
#include // Declare your global variables here void main(void) // Port C initialization PORTC=0x00; // Port D initialization // Timer/Counter 0 initialization // Timer/Counter 1 initialization // Timer/Counter 2 initialization // External Interrupt(s) initialization // Timer(s)/Counter(s) Interrupt(s) initialization // Analog Comparator initialization while (1)
E-mail:
info@telesys.ru
{
// Input/Output Ports initialization
// Port B initialization
State0=T
PORTB=0x00;
DDRB=0b00001010;
DDRC=0xb00000100;
State0=T
PORTD=0x00;
DDRD=0x00;
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Clock source: System Clock
// Clock value: 0,977 kHz
// Mode: CTC top=OCR1A
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0b01010000;
TCCR1B=0b00001101;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x25;
OCR1BH=0x00;
OCR1BL=0x00;
// Clock source: System Clock
// Clock value: 0,977 kHz
// Mode: CTC top=OCR2
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0b00011101;
TCNT2=0x00;
OCR2=0x7;
// INT0: Off
// INT1: Off
MCUCR=0x00;
TIMSK=0x00;
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
{
};
}
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание