Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как считать CLKPR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
horoc
Написал простенькую прогу, смотрю на выводе выходную частоту, при любых коэф. деления на выходе 1кГц.
Код
static void avr_init(void)
{  TCCR1B=(1<<CS10)|(1<<WGM12);// ctc mode
     OCR1A=4000;//время 1 милисекунда
     sei();
}

int main(void){
      clock_prescale_set(clock_div_2);
      avr_init();
      DDRB|=_BV(1)|_BV(0);
  while(1)
      {    
      PORTB^=_BV(1);
      if (TIFR1 & _BV(OCF1A)) // 0.001 sek
          {
          TIFR1 = _BV(OCF1A);
          PORTB^=_BV(0);    
          }
      }
  }


Все разобрался, этот код работает. Не работал UART из-за этого затормозил. Да и сейчас почему то получается, если взять значение из таблицы baud rate для 4Meg (4800 51 0.2%), то принимает нормально на 9600. Для меги88.
horoc
Народ помогите!
Не могу понять. Ставлю RС 8Мег, CLKPR делю частоту на 2. Дергаю вывод через 1мс, частота должна быть 500Гц. Также уарт настраиваю на 2400 бод, а он в реале принимает на 4800 и частота на выводе 1кГц.
Исходник прилагаю, все лишние убрал. Проверяю в протеусе, там работает правильно.
Как понять такую ситуацию? RC генератор работает на 16Мег?
Еще вопрос, хочу использовать уарт, с тактированием от внутреннего RC, посылка где то раз в секунду не больше 9 байт, такой вариант имеет право на жизнь? Стоять будет в помещение. Никто не проверял на стабильность и повторяемость в разных экземплярах частоты этого генератора?
Нажмите для просмотра прикрепленного файла
RabidRabbit
Цитата(horoc @ Jan 5 2012, 14:18) *
Еще вопрос, хочу использовать уарт, с тактированием от внутреннего RC, посылка где то раз в секунду не больше 9 байт, такой вариант имеет право на жизнь? Стоять будет в помещение. Никто не проверял на стабильность и повторяемость в разных экземплярах частоты этого генератора?

Именно этого - не знаю, но в преобразователе Wiegand->RS232 нормально работает ATtiny12 на 9600 от внутреннего генератора (UART ногодрыжный) - кварца под рукой не было, а потом лень стало впаивать sm.gif Условия похожие - используется в помещении. Посылки до 64 байт включительно пролезают нормально, больших размеров не попадалось.

На счёт частоты для UART в даташите в формулах для расчёта скорости используется fOSC System Oscillator clock frequency...
horoc
Попросил друга проверить программу из поста выше. Так у него все нормально, частота на выводе 500гц. У меня другой меги нет, что бы самому проверить. На этой с этой программой на выводе 1кГц. Еще есть один нюанс, все байты сигнатуры читаются 0xFF, может это связано как то с тем, что частота внутреннего RC генератора моей меги 16Мег? Звучит конечна как бред cranky.gif , но, что в протеусе, что у друга программа работает, а у меня все частоты завышены в два раза.
niXto
Внутренний генератор можно разогнать до 13 МГц - OSCCAL, но не рекомендуется выше 9 МГц т.к. им тактируется запись в ПЗУ и при высокой частоте срок хранения данных уменьшается

Прошить бит CKOUT и измерить частотомером
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.