fredo 0 8 мая, 2008 Опубликовано 8 мая, 2008 (изменено) · Жалоба начал изучать счетчики - вопрос: как записать и куда записать значение при котором счетчик должен отреагировать? т.е. конечное значение счета... В регистр сравнения OCR, при совпадении его значения со значением счетного регистра будет сгенерировано прерывание. Либо записываешь начальное значение в счетный регистр и ждешь переполнения. Изменено 8 мая, 2008 пользователем fredo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 9 мая, 2008 Опубликовано 9 мая, 2008 · Жалоба #include <tiny2313.h> #include <delay.h> bit a=0; bit b=0; void main(void) { #asm("sei"); TCCR1B|=(1<<2); TCCR1B|=(1<<0); DDRB=2; GIMSK|=(1<<5); PCMSK|=(1<<7); while(1) { if (a==1&&b==1) {a=0; PORTB=2; ... if(a==1) {a=0; PORTB=0;};};};} void interrupt [PCINT.7](void) { a=1; delay_xc(1000); a=0;} void interrupt [TIM1_COMPA]{ b=1;} вместо ... напишите отсчет времени по счетчику ну скажем 2 секунды... прога для attiny2313 и потом выключить отсчет времени... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба вот пишу опять сюда... ничего не получается... тот же самый случай #include <tiny2313.h> #include <delay.h> int a=0; void main(void) { #asm("sei"); DDRB=2; GIMSK|=(1<<5); PCMSK|=(1<<7); while(1) { if (a==200) {a=0; PORTB=2; if(a==200) {a=0; PORTB=0;};};};} interrupt [PCINT] void pin_change_isr0(void) { a++;} опять ничто не получается... я уже просто не знаю что делать ... ничего не мигает ... ну если только иногда ... цепь питания - блок питания - 500 мкф на 25 вольт кренка 100 мкф на 25 вольт 0,1 мкф - сам контроллер цепь определения перехода - 560 ком и диод 1N4007... на резет подано лог1 через 10 ком возникла мысль поменять блок питания... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба вот пишу опять сюда... ничего не получается... тот же самый случайНа этом форуме буквально через день ищется одна и та же ошибка. Если у вас переменная меняется в прерывании, а проверяется в основной программе, то она обязательно должна быть объявлена с квалификатором volatile! Поэтому у вас должно быть volatile int a = 0; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба эффект тот же... но мигать стало почаще Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба цепь определения перехода - 560 ком и диод 1N4007... Откуда 560 ком и куда диод? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
WHILE 0 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба дык а зачем вам прерывание от смены уровней на пинах и где у вас инициализация и прерывание от таймера?и разрешать прерывния лучше в конце инциализации контроллера прямо перед входом в главный цикл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба 1) взято с аналогичного девайса но + диод на ногу мк 2) таймера нету ... просто если посмотреть на волну переменного тока там будет 2 перехода через 0 и исходя из периода волны мы считаем Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба 1) взято с аналогичного девайса но + диод на ногу мк 2) таймера нету ... просто если посмотреть на волну переменного тока там будет 2 перехода через 0 и исходя из периода волны мы считаем Вольт сколько подаешь ? Диод на землю не нужен тк он есть внутри МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба 220 вольт... не на землю а эту переменку и выпрямить ... если что я уходить не буду - пишите Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба А рекомедации побоку да? AVR182: Zero Cross Detector Ищи в гугле, там все подробно разжевано в картинках. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 25 мая, 2008 Опубликовано 25 мая, 2008 · Жалоба я фигово знаю технический английский но там было написано что подключать просто через 1 мегоом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 25 мая, 2008 Опубликовано 25 мая, 2008 (изменено) · Жалоба охохохохохох не получается у меня управлять лампочкой накаливания ... цепь управления нога мк 220 ом оптопара moс3021 симистор BT138 придется переходить к менее силовому проекту ... хотя блин никто из вас разработчиков электроники не делал такого чуда??? что никто не может мне помочь??? Изменено 25 мая, 2008 пользователем _Ivan_33 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 26 мая, 2008 Опубликовано 26 мая, 2008 · Жалоба охохохохохох не получается у меня управлять лампочкой накаливания ... цепь управления нога мк 220 ом оптопара moс3021 симистор BT138 придется переходить к менее силовому проекту ... хотя блин никто из вас разработчиков электроники не делал такого чуда??? что никто не может мне помочь??? Приведенный тобой выше код должен заставить мигать светодиод(соответственно включенный) этим самым ты научишься ловить переход через 0. Затем нужно научиться (или научить) синхронизировать таймер с сетью. те в момент перехода сбрасывать его. Период полного счета его должен быть близок к 10мсек(100Гц). Потом освоить работу компараторов таймера. Без осциллографа вслепую это сделать очень трудно! Ты просто не увидишь результатов работы своей программы. Вышеуказанная прогр. работает??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 26 мая, 2008 Опубликовано 26 мая, 2008 · Жалоба на лампочке не получается - на светиодиоде не проверял.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться