Перейти к содержанию
bbh_blocked_dnftl

Dx Portal помогите с кодом на С для Atm8


Рекомендуемые сообщения

Здравия всем !

 

 

 

Пожалуйста помогите разобраться . Пытаюсь написать прошивку для Atmega8 на С в Atmel Studio 7.0 .

 

 

 

Программка простая ( небольшая ) ... по сути - частотомер ( только для небольшого диапазона частот ... примерно - от нескольких Гц , до нескольких десятков кГц ) .

 

 

 

Импульсы считать со входа T0 ( PD4 ) ...микр-ра Atmega8a ( 28 pin ) . Использовать TCNT1 (16 bit) . Полученное число выводить на Lcd - nokia5110 .

 

 

 

Как я понимаю прерывания не нужны , алгоритм простой :

 

 

 

1) инициализация дисплея и счетчика

 

 

 

2) остановить (запретить счет) счетчик AVR - ( CS12,CS11,CS10-прописать нули )

 

 

 

3) обнулить ( отчистить) буфер дисплея и счетчика ( AVR )

 

 

 

3) запустить бесконечный цикл :

 

 

 

а) разрешить считать импульсы с T0 ( PD4 ) - ( CS12,CS11,CS10-прописать единицы )

 

 

 

б) задать паузу ( надеюсь правильно рассчитал - 10 мсек )

 

 

 

в) запретить считать - ( CS12,CS11,CS10-прописать нули )

 

 

 

г) вывести полученное значение со счетчика на дисплей

 

 

 

 

 

 

 

 

 

 

 

( СИЛЬНО НЕ СМЕЙТЕСЬ ... Я НАЧИНАЮЩИЙ . с АЦП AVR разобрался удачно , собрал схемку в протеусе , написал прошивку , спаял ... все работает . а вот с таймером завис надолго . есть много примеров в инете , но все слишком навороченные для меня . запутался . )

 

 

 

вот примерно что получилось с таймером ... упрощал как мог ...в общим не получается . подскажите где косяк .(только просьба - без лишних наворотов и по возможности с комментариями ... задача - не повторить чужую программу ... а разобраться самому )

 

 

 

//Atmega8A

 

 

 

#define F_CPU 8000000

#include

#include

#include

#include "n5110.h"

 

 

 

void presets(){

Lcd_init();

Lcd_clear();

TCCR1B =0x00;

TCNT1=0000;

 

 

 

TCCR0 |= (1 << CS01);

}

 

 

 

int main(void)

{

presets();

while (1)

{

 

 

 

TCNT1=0000;

TCCR1B|=(1<

_delay_ms(10);

TCCR1B &=~(1<

 

Lcd_prints(5,2,FONT_1X,(TCNT1)PSTR("Hz")); // КОМПИЛЯТОР РУГАЕТСЯ НА ЭТУ СТРОЧКУ

Lcd_update();

}

}

 

Читать дальше

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...