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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 23.11.2012, 08:29  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Сообщение от ascerdfg Посмотреть сообщение
А при выполнении программы? Не дожидаясь таймера...
Внешние прерывания работают всегда, даже когда генератор контроллера вообще остановлен. Только с ИНТами есть небольшие нюансы в повер-довн, см. даташит
Реклама:
niXto вне форума  
Сказали "Спасибо" niXto
ascerdfg (23.11.2012)
Непрочитано 23.11.2012, 09:48  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Сообщение от rubel Посмотреть сообщение
Не боитесь нолик переменной timer1 проскочить, если ваша функция(или их набор) :
{что-то делаем; --timer1;}
будет занимать по времени более двух прерываний таймера?
А вы не боитесь "что-то" сделать раз 200, если цикл таймера таки больше?
Сообщение от Saadov Посмотреть сообщение
PHP код:
while(1)
{
if(
timer1 == 0) {что-то делаем};
if(
timer2 == 0) {что-то делаем};

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

Сообщение от omercury Посмотреть сообщение
А вы не боитесь "что-то" сделать раз 200, если цикл таймера таки больше?

Я не боюсь потому, что во-первых контролирую время выполнения, а во-вторых обычно в прерывании ставлю флаг, а при выполнении условия его сбрасываю. О чём собственно и написал выше.
А вы про это, я сам использую флаги. А иначе действительно очень много получается одних и тех же действий.
PHP код:
int_timer
{
if(
time10) { --time1flag 1; };  
};
while(
1)
{
If((
time1==0)&&(flag)) {flag=0делаем что-то;};
// и т.д.
}; 
Saadov вне форума  
Непрочитано 24.11.2012, 21:56  
ITShark
Прохожий
 
Регистрация: 08.11.2007
Сообщений: 8
Сказал спасибо: 11
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
ITShark на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

C недавних пор интересуюсь темой AVR MCU.
Ранее в этой теме возникала проблемы с фузами. В аттаче - калькулятор Фуз.

А ещё есть курс AVR. Учебный курс.

Отличительная особенность курса - его понятность. На мой взгляд, курс будет полезен как начинающим, так и зубрам.

AVR. Учебный Курс. Конфигурация FUSE бит - конкретно про Fuse-bits в этом курсе.
Вложения:
Тип файла: zip FUSEcalc.zip (83.8 Кб, 82 просмотров)

Последний раз редактировалось ITShark; 24.11.2012 в 22:10. Причина: Добавление важной Информации
ITShark вне форума  
Непрочитано 25.01.2013, 10:36  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,832
Сказал спасибо: 742
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Не совсем про фьюз, но про АВР.
Пишу в Кодевижн, в обработчике прерывания пытаюсь сделать ассемблерную вставку.

Требуется сделать инкремент/декремент , в зависимости от условия, глобальной переменной типа int описанной в заголовке программы.
Как обрабатывать эту переменную из ассемблера ?
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Непрочитано 25.01.2013, 12:05  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Прибавляйте единицу в своем си
Инкремент не даст никакого выигрыша по сравнению с прибавлением единицы, разве что флаги не трогает, но на сях это несущественно
niXto вне форума  
Сказали "Спасибо" niXto
E_C_C (25.01.2013)
Непрочитано 25.01.2013, 12:15  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,832
Сказал спасибо: 742
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

После Си компилятор гору кода городит. Вот такую.
Исходный код
Код:
interrupt [EXT_INT0] void ext_int0_isr(void)
 {   
  if(PIND.3==0)                // n - буфер  чисел с датчика
     {    n--; } 
    if(PIND.3==1)
     {   n++;  } 
        
 }
И после в асме

Код:
	.CSEG
_ext_int0_isr:
	ST   -Y,R22
	ST   -Y,R23
	ST   -Y,R26
	ST   -Y,R30
	ST   -Y,R31
	IN   R30,SREG
	ST   -Y,R30
; 0000 002C 
; 0000 002D   if(PIND.3==0)                // n - буфер  чисел с датчика
	SBIC 0x10,3
	RJMP _0x4
; 0000 002E      {
; 0000 002F        n--;
	LDI  R26,LOW(_n)
	RCALL __GETD1P_INC
	SBIW R30,1
	SBCI R22,0
	SBCI R23,0
	RCALL __PUTDP1_DEC
; 0000 0030      }
; 0000 0031     if(PIND.3==1)
_0x4:
	SBIS 0x10,3
	RJMP _0x5
; 0000 0032      {
; 0000 0033        n++;
	LDI  R26,LOW(_n)
	RCALL __GETD1P_INC
	__SUBD1N -1
	RCALL __PUTDP1_DEC
	SBIW R30,1
	SBCI R22,0
	SBCI R23,0
; 0000 0034      }
; 0000 0035 
; 0000 0036 
; 0000 0037 
; 0000 0038  }
_0x5:
	LD   R30,Y+
	OUT  SREG,R30
	LD   R31,Y+
	LD   R30,Y+
	LD   R26,Y+
	LD   R23,Y+
	LD   R22,Y+
	RETI
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Сказали "Спасибо" E_C_C
niXto (25.01.2013)
Непрочитано 25.01.2013, 13:32  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Мощно...
Поэтому я предпочитаю АСМ...
niXto вне форума  
Непрочитано 25.01.2013, 14:35  
gary2007
Почётный гражданин KAZUS.RU
 
Аватар для gary2007
 
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
gary2007 на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Если завести локальную переменную и присвоить ей n, то код укоротится немного.
__________________
Мелочи не решают главного. Они решают всё!
gary2007 вне форума  
Непрочитано 25.01.2013, 16:47  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Программирование AVR, FUSE и все что с этим связано.

Да тип 32битный у переменной n, вот оно тужится с 4 байтами
Boba_spb вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45


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


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