Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Отработка секундного импульса на AVR

Непрочитано 02.04.2010, 12:44  
AJScorp
Почётный гражданин KAZUS.RUN
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,550
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

Сообщение от Amator1 Посмотреть сообщение
А как насчет скобок для функции if(a==0x0A)
Так они там и не нужны, для одной операции скобки ставить не обязательно.

a++;
if(a==0x0A) a=0;
Реклама:
AJScorp вне форума  
Непрочитано 02.04.2010, 14:02  
Amator1
Прохожий
 
Регистрация: 30.12.2008
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Amator1 на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

Сообщение от AJScorp Посмотреть сообщение
Так они там и не нужны, для одной операции скобки ставить не обязательно.

a++;
if(a==0x0A) a=0;
Я именно так и делаю при записи в одну строку, при переносе строки - ставлю скобки.
Amator1 вне форума  
Непрочитано 02.04.2010, 15:50  
ilya_sh
Прописка
 
Регистрация: 09.10.2007
Сообщений: 235
Сказал спасибо: 27
Сказали Спасибо 24 раз(а) в 24 сообщении(ях)
ilya_sh на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

Сообщение от Amator1 Посмотреть сообщение
Я именно так и делаю при записи в одну строку, при переносе строки - ставлю скобки.
Но компилятор не выполнит условие, только если сразу будет ";" стоять.
А если компилятор перевод строки считает за ";", то это хреновый компилятор...
ilya_sh вне форума  
Непрочитано 03.04.2010, 09:03  
begun
Гражданин KAZUS.RUN
 
Регистрация: 18.07.2006
Сообщений: 894
Сказал спасибо: 244
Сказали Спасибо 31 раз(а) в 28 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

родные!
раз уж с Вашей помощью нашол концы ,воодушившись теперь разыгрываю всякие варианты и вот
появились такие соображения.
Как Я понял, если счетчик не использует програмную установку промежуиочного значения
и считает только по заложенному в него коэффициенту деления, то это считается аппаратный счет и в этом случае в промежутке между выходними сигналами при прерывании можно выполнить любую команду не опасаясь потери точночти.
Для МЕГИ 8 ,например, можно таки использовать TIMER 0 ,подцепить таки кварц 4096,
выбрать коэф. деления предделителя 64, а самого счетчика 256, и тут прерывания будет происходить через каждые 4096000/64/256=250Гц т.е. каждые 1/250=4мс и значит в этом промежутке можно сделать 4000/0,244=16393 (или пусть половину)операции в секунду, сохраняя
при этом точно интервал 4 мс.
Я правильно рассуждаю или опазорился перед учителями?
Спасибо.
begun вне форума  
Непрочитано 03.04.2010, 09:21  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

Правильно.
baiderin вне форума  
Непрочитано 03.04.2010, 12:28  
begun
Гражданин KAZUS.RUN
 
Регистрация: 18.07.2006
Сообщений: 894
Сказал спасибо: 244
Сказали Спасибо 31 раз(а) в 28 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

новая находка!
Чип, Atmega 8, кварц 32 768, промежуток прерываня timer2 1сек, внутренный систеиный генератор 4 Мгц. Написал программу с целью дабится преобладания промежутка 1сек.
Компилятор CVAVR показал что занято 39% eeprom и 55% flash, ведь это значит что количество
инструкйии далеко от цифры 1 000 000 .тем не менее как только дашел до такого количество
операции ,программа стала прерыватся с периодом 1 сек и естественно не выполняется.
уменьшу программу опять работает.
Из за чего это может происходить вроде количество инстпукцтт не так уж большой????
Спасибо.
begun вне форума  
Непрочитано 04.04.2010, 01:44  
begun
Гражданин KAZUS.RUN
 
Регистрация: 18.07.2006
Сообщений: 894
Сказал спасибо: 244
Сказали Спасибо 31 раз(а) в 28 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

нашолся выход.
всю программу перенес из обработчика прерывания на функцию
WHILE ,оставив только счетчик секунд и все заработала .объяснить не могу, но может кому то это информация пригодится.
Спасибо.
begun вне форума  
Непрочитано 04.04.2010, 18:03  
Saadov
Почётный гражданин KAZUS.RUN
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,010
Сказал спасибо: 348
Сказали Спасибо 1,023 раз(а) в 551 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

Сообщение от begun Посмотреть сообщение
объяснить не могу
Делайте прерывания как можно короче. Взводите флаг или работайте со счетчиком(++\--) А уже в цикле основной программы проверяйте этот флаг или делайте действие в зависимости от состояния счетчика. Таймер не зависит от того, выполняется какая то программа или нет, он тикает сам по себе(если мы его включили).
Saadov вне форума  
Непрочитано 05.04.2010, 08:04  
begun
Гражданин KAZUS.RUN
 
Регистрация: 18.07.2006
Сообщений: 894
Сказал спасибо: 244
Сказали Спасибо 31 раз(а) в 28 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

очередной раз большое спасибо,иду дальше.
begun вне форума  
Непрочитано 07.04.2010, 13:23  
begun
Гражданин KAZUS.RUN
 
Регистрация: 18.07.2006
Сообщений: 894
Сказал спасибо: 244
Сказали Спасибо 31 раз(а) в 28 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

друзья!
вчем моя ошибка?
Взял Atmega8.
установил внешний кварц 16384 кгц ,выставил фьюзы соотвтствующие. использую TIMER1 в режиме сравнения ,
ставлю предделитель на 1024 и далее записываю в регистре OCRA1 3E80 Hex т.е. делю на 16 000,
на выходе OC1A ,по идее, должен был получить 0,5 гц так как 16384000/1024=16000
и 16000/16000=1,
но частота получается гораздо ниже,
примерно один перепад за 6-7 секунд.
смодулеровал в proteus , получил тоже самое, хотя осциллограф proteus показывал нормальный результат.
Прмогите пожалуйсто разобратся.
Привожу код;

#include ‹mega8.h›


void main(void)
{
-----

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 16,000 kHz
// Mode: CTC top=OCR1A
// OC1A output: Toggle
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x40;
TCCR1B=0x0D;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x3E;
OCR1AL=0x80;
OCR1BH=0x00;
OCR1BL=0x00;

------


// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
------

while (1)
{
// Place your code here

};
}
Спасибо
begun вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AVR JTAGICE MKII - проблемы firmware... Luxurious AVR 25 20.10.2014 10:50
На WinAVR + AVR Studio c CVAVR Vetal-soft Embedd С 87 03.03.2013 20:31


Часовой пояс GMT +4, время: 16:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.