Найдено 37 результатов
- Чт май 10, 2018 08:39:29
- Форум: Теория
- Тема: Всё про операционный усилитель.
- Ответы: 1588
- Просмотры: 528737
Re: Всё про операционный усилитель.
[uquote="mickbell",url="/forum/viewtopic.php?p=3372201#p3372201"]Я склоняюсь к тому, что это защита. Вопрос только, от чего. С учётом того, что терморезистор NTC, уточним алгоритм работы. Высокий выход первого ОУ, подаваясь через диод на задатчик температуры, заставляет второй ОУ выключить нагрев ...
- Вт май 08, 2018 18:11:09
- Форум: Теория
- Тема: Всё про операционный усилитель.
- Ответы: 1588
- Просмотры: 528737
Re: Всё про операционный усилитель.
[uquote="mickbell",url="/forum/viewtopic.php?p=3371992#p3371992"]Сначала я подумал про ПИ-регулятор, но как-то не очень на него похоже: ёмкость для него маловата.[/uquote]
Терморезистор NTC. Вот его приблизительные характеристики:
5 град. C - 22k
10 - 18k
20 -12k
30 - 8k
40 - 6k
Возможнос ввел в ...
Терморезистор NTC. Вот его приблизительные характеристики:
5 град. C - 22k
10 - 18k
20 -12k
30 - 8k
40 - 6k
Возможнос ввел в ...
- Вт май 08, 2018 13:49:35
- Форум: Теория
- Тема: Всё про операционный усилитель.
- Ответы: 1588
- Просмотры: 528737
Re: Всё про операционный усилитель.
Добрый день.
Помогите разобраться в принципе работы регулятора теплого пола
Вот схема:
http://img.radiokot.ru/files/116002/thumbnail/1kt41knzkk.JPG
RV1 - терморезитор теплого пола
D3 - реле, включающее цепь нагрева
Если я правильно понял, схема работает на основе сравнения напряжений с датчика ...
Помогите разобраться в принципе работы регулятора теплого пола
Вот схема:
http://img.radiokot.ru/files/116002/thumbnail/1kt41knzkk.JPG
RV1 - терморезитор теплого пола
D3 - реле, включающее цепь нагрева
Если я правильно понял, схема работает на основе сравнения напряжений с датчика ...
- Ср ноя 30, 2016 11:42:28
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Ну вот у меня есть версия 3.12, там для проца atmega169p EIMSK->PCIE0 = 6, а для проца atmega169pa отсылает к библе "mega329p_bits.h", там EIMSK->PCIE0 = 4.
Так что вероятно, если правильно выбран проц, то работало бы правильно.
Или неправильно Вас понял?
Да, вы все верно говорите. Ошибка была ...
Так что вероятно, если правильно выбран проц, то работало бы правильно.
Или неправильно Вас понял?
Да, вы все верно говорите. Ошибка была ...
- Ср ноя 30, 2016 10:38:13
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Скорее всего не поможет. Разница же была в #define PCIE, а значит компилироваться будет в любом случае.Vov123 писал(а):Вероятно неплохо в будущем проверять на другом компиляторе, к примеру, на CVAVR?
- Ср ноя 30, 2016 06:19:06
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Спасибо всем за помощь! Все оказалось как обычно просто: существует какая-то разница между контроллерами atmega169pa-au толи в версиях, то ли просто у меня маркировка неправильная стояла. В общем даташит МК atmega169p(v) отличается от atmega169pa. Пока что я нашел различия в бите, EIMSK, а именно: в ...
- Пн ноя 28, 2016 18:41:46
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Может он у Вас из-за большой нагруженности на плате проседает по питанию и в момент нажатия кнопки происходит рестарт.
Было бы заметно, светодиод бы гас (он зажигается при опросе кнопки в цикле), но не происходит этого. Вообще никакой реакции по прерыванию(
Может попробовать сделать по этим ...
Было бы заметно, светодиод бы гас (он зажигается при опросе кнопки в цикле), но не происходит этого. Вообще никакой реакции по прерыванию(
Может попробовать сделать по этим ...
- Пн ноя 28, 2016 10:50:10
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Можно попробовать позамыкать перемычкой вместо кнопки и контакта энкодера. Из опыта, не следует полностью доверять встроенной подтяжке. Контакт, подтянутый резистором 1к работает гораздо лучше.
Пробовал устанавливать маску прерываний на все пины порта E и замыкать их перемычкой - прерывания не ...
Пробовал устанавливать маску прерываний на все пины порта E и замыкать их перемычкой - прерывания не ...
- Пн ноя 28, 2016 08:09:08
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
akl, залил Вашу прошивку - по нажатию на PE6 загорается или гаснет светодиод на PB6, а на PB0 реакции нет. При нажатии на PE3 ничего не происходит. Если я правильно понял Ваш код, то обрабатывается только опрос кнопок в цикле?
Vov123, Вы тоже думаете дело в этом? Я выкладывал плату, взглягите если ...
Vov123, Вы тоже думаете дело в этом? Я выкладывал плату, взглягите если ...
- Вс ноя 27, 2016 22:05:49
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
По дизассемблеру Atmel Studio также не записывает биты PCIF1,0 в регистре EIMSK командой out. Работают только битовые операции типа
sbi EIMSK,PCIE0 ; Установить бит PCIE0 в регистре EIMSK в 1.
sbi EIMSK,PCIE1 ; -//-
А как должно быть в идеале и в чем разница между sbi и out кроме увеличения ...
sbi EIMSK,PCIE0 ; Установить бит PCIE0 в регистре EIMSK в 1.
sbi EIMSK,PCIE1 ; -//-
А как должно быть в идеале и в чем разница между sbi и out кроме увеличения ...
- Вс ноя 27, 2016 19:54:36
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Согласуется. В коде (в последней его версии, с которой выполнен дизассемблер) по вектору прерывания PCINT0 выполняется установка единицы на порты PB0 и PB6, а по PCINT1 и INT0 выполняется инверсия порта PB6
- Вс ноя 27, 2016 19:23:24
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
По дизассемблеру выполняются следующие действия на векторах:
ISR(PCINT0_vect) { - выполняет PORTB = (1<<PB0|1<<PB6) (если правильно записал на Си - PB0 и PB6 в 1)
ISR(PCINT1_vect) { - выполняет PORTB ^= (1<<PB6) (инверсия вывода PORTB,6. Причем читается почему-то PORTB а не PINB)
ISR(INT0_vect ...
ISR(PCINT0_vect) { - выполняет PORTB = (1<<PB0|1<<PB6) (если правильно записал на Си - PB0 и PB6 в 1)
ISR(PCINT1_vect) { - выполняет PORTB ^= (1<<PB6) (инверсия вывода PORTB,6. Причем читается почему-то PORTB а не PINB)
ISR(INT0_vect ...
- Вс ноя 27, 2016 17:19:07
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Попробуйте сделать ассемблерную вставку
ldi r16,(1<<PCIE0)
;sts EIMSK,r16
out EIMSK,r16
Я пишу в WinAVR. Посмотрел его дизассемблер - присвоение идет out'ом
EIMSK = (1<<PCIE0) | (1<<PCIE1) | (1<<INT0); // включение прерываний PCINT7..0
a6: 81 ec ldi r24, 0xC1 ; 193
a8: 8d bb out 0x1d ...
ldi r16,(1<<PCIE0)
;sts EIMSK,r16
out EIMSK,r16
Я пишу в WinAVR. Посмотрел его дизассемблер - присвоение идет out'ом
EIMSK = (1<<PCIE0) | (1<<PCIE1) | (1<<INT0); // включение прерываний PCINT7..0
a6: 81 ec ldi r24, 0xC1 ; 193
a8: 8d bb out 0x1d ...
- Вс ноя 27, 2016 16:55:53
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Добавил прерывания на INT0 и PCINT1 чтобы исключить неправильную адресацию
EICRA = (1<<ISC00); //Any logical change on INT0 generates an interrupt request.
PCMSK0 = (1<<PCINT3) | (1<<PCINT6); //PE3 и PE6
PCMSK1 = (1<<PCINT13); //PB5
EIMSK = (1<<PCIE0) | (1<<PCIE1) | (1<<INT0);
ISR(PCINT1_vect ...
EICRA = (1<<ISC00); //Any logical change on INT0 generates an interrupt request.
PCMSK0 = (1<<PCINT3) | (1<<PCINT6); //PE3 и PE6
PCMSK1 = (1<<PCINT13); //PB5
EIMSK = (1<<PCIE0) | (1<<PCIE1) | (1<<INT0);
ISR(PCINT1_vect ...
- Вс ноя 27, 2016 14:50:02
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Выполните тест, зажигая светодиод при первом же попадании в прерывание. Таким образом проверите их отработку.
Вы имеете ввиду сделать так:
ISR(PCINT0_vect) {
PORTB |= (1<<PB6);
PORTB |= (1<<PB0);
}
Тоже результата нет.
Все больше и больше склоняюсь с тому, что есть ошибки в разводке платы ...
Вы имеете ввиду сделать так:
ISR(PCINT0_vect) {
PORTB |= (1<<PB6);
PORTB |= (1<<PB0);
}
Тоже результата нет.
Все больше и больше склоняюсь с тому, что есть ошибки в разводке платы ...
- Вс ноя 27, 2016 12:06:21
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Запрограммировал BOOTRST Fuse, HIGH Fuse стал 0xD8, ситуация не изменилась. Или я Вас неправильно понял?dr.doc писал(а):When the BOOTRST Fuse is unprogrammed
0x1C04 jmp PCINT0 ; PCINT0 Handler Читайте внимательно datasheet на странице 48 и 268.
- Вс ноя 27, 2016 09:18:42
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
PCMSK0 = (1<<PCINT3) | (1<<PCINT6); //маска прерываний на порт E
EIFR = (1<<PCIF0);
Не помогло(
У меня был регулятор теплого пола с дисплеем на этом МК и я его прошивал - прерывания срабатывали. А развел свою плату, так все работает кроме прерываний PCINT
Уже грешу на разводку платы, хотя она и ...
EIFR = (1<<PCIF0);
Не помогло(
У меня был регулятор теплого пола с дисплеем на этом МК и я его прошивал - прерывания срабатывали. А развел свою плату, так все работает кроме прерываний PCINT
Уже грешу на разводку платы, хотя она и ...
- Сб ноя 26, 2016 19:22:21
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Долго не отвечал, т.к. ждал новый камень
Отключи fuse JTAG.
Отключил, без изменений все.
Сейчас такой код залит в МК:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
int main (void)
{
DDRB |= (1<<PB0) | (1<<PB6); // Порт B на выход
PORTB = 0x00;
DDRE &= ~((1<<PE3 ...
Отключи fuse JTAG.
Отключил, без изменений все.
Сейчас такой код залит в МК:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
int main (void)
{
DDRB |= (1<<PB0) | (1<<PB6); // Порт B на выход
PORTB = 0x00;
DDRE &= ~((1<<PE3 ...
- Вт окт 18, 2016 16:24:10
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
На все портах E одинакова ситуация(Z_h_e писал(а):Тоже такая мысль в голову пришла. Глянул ДШ, он там на порте F висит. Вроде как не при делах.
vk_31, попробуйте прерывание с других пинов запустить. Может стоит глянуть в дезассемблере вектора прерываний.
Дизассемблер попробую посмотреть
- Вт окт 18, 2016 13:37:02
- Форум: AVR
- Тема: Пробема с прерываниями
- Ответы: 40
- Просмотры: 6502
Re: Пробема с прерываниями
Когда ничего не работает, то начинать надо сначала:
1) проверить наличие питания.
2) помигать светодиодом без всяких кнопок (я вместо этого обычно таймер на выход включаю и звук слушаю, за одно можно системную частоту проверить) а то вдруг генератор не завёлся.
3) проверять уже программу, вставляя ...
1) проверить наличие питания.
2) помигать светодиодом без всяких кнопок (я вместо этого обычно таймер на выход включаю и звук слушаю, за одно можно системную частоту проверить) а то вдруг генератор не завёлся.
3) проверять уже программу, вставляя ...