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

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

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

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

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

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

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

 
Опции темы
Непрочитано 02.04.2010, 12:44  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
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.RU
 
Регистрация: 18.07.2006
Сообщений: 870
Сказал спасибо: 231
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
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.RU
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,727
Сказал спасибо: 2,428
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

Правильно.
baiderin вне форума  
Непрочитано 03.04.2010, 12:28  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 870
Сказал спасибо: 231
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
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.RU
 
Регистрация: 18.07.2006
Сообщений: 870
Сказал спасибо: 231
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
begun на пути к лучшему
По умолчанию Re: Отработка секундного импульса на AVR

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

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

очередной раз большое спасибо,иду дальше.
begun вне форума  
Непрочитано 07.04.2010, 13:23  
begun
Гражданин KAZUS.RU
 
Регистрация: 18.07.2006
Сообщений: 870
Сказал спасибо: 231
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
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, время: 10:25.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot