-
- Не нравится мне Ваш импульс.Скорее всего его не успеват mega поймать. Для фронтов , как Вы знаете , всё таки требуется синхронизация. - ilyaul(24.02.2013 18:47)
- Угу, коротнуть его на +питания отверткой и посмотреть, чего будет :) - Ксения(24.02.2013 18:57)
- Причём на +5 :) Для надёжности срабатывания :) - ilyaul(24.02.2013 19:02)
- Кстати! А возможно ли сгенерить этот импульс программно? Скажем, установить этот пин на out, а потом им подёргать. От этого прерывания возникнуть должны? Или в режиме out они не работают? - Ксения(24.02.2013 19:38)
- Если вы спрашиваете, будут ли прерывания, если выставить пины на выход, инициализировать внешнее прерывание и подергать ими, то будет. Проект прикрепил. DDRD, 2. Прерывание настроено на высокий уровень. mazur(24.02.2013 20:59)
- Вот, всё получилось хттп://caxapa.ru/390530.html - login_impossible(24.02.2013 20:32, )
- Я только что у себя на Меге8A попробовала - всё работает, вот только между 8A и 88PA довольно много мелких отличий. Эх, достать бы 88-ую в DIP-корпусе (не важно с какими буквами), я бы ее в свою демо-плату вставила. Да не продают одну штуку. - Ксения(24.02.2013 19:08)
- 48A - плиз - ilyaul(24.02.2013 19:28)
- Даже у нас на рынке продаются переходные платки с TQFP на штырьки с шагом 2.54 мм. Да и отутюжить такую не проблема. Леонид Иванович(24.02.2013 19:21)
- У меня вот такая. Тут уже и кнопка под INT0 разведена, и есть готовый стабилизатор питания + кварц + светодиодик + MAX232 + разъем RS232 + разъем для программатора + кнопочка для Reset. И еще много-много пустых дырочек, омедненных снизу. Только МК Ксения(52 знак., 24.02.2013 19:44 - 19:46, картинка)
- А у меня вот такая макетка, проводочками распаяна ATmega8, поэтому на ней и делаю все свои проекты. Леонид Иванович(24.02.2013 21:16)
- А это что за фигня, которая 256 кажет? Тоже такую хочу!!! :) Назовите, как ее полностью кличут. - Ксения(24.02.2013 22:31)
- Конкретно этот индикатор REC-S3361CSR. - Леонид Иванович(24.02.2013 22:53)
- Например так: - Гудвин(24.02.2013 22:39, ссылка)
- Например, BA56-11SRWA или BC56-11SRWA - rezident(24.02.2013 22:37, ссылка, ссылка)
- Это "голый" индикатор, а не готовый модуль индикации. Есть такие же и на 4 знака. - rezident(24.02.2013 22:41, ссылка)
- Расхотелось... Этакая штуковина у меня все порты МК займет, для дела не останется. - Ксения(24.02.2013 22:58)
- Дык дополните этот индикатор PCF8575 - всего два пина займет SCL и SDA. Ну или пару 74HC595 поставить - для управления три провода. Только использовать лучше индикаторы у которых общие аноды - меньше доп. ключей для управления ими придется rezident(56 знак., 24.02.2013 23:06 - 23:14)
- Два дополнительных порта за лишний корпус + причудливое программирование? :) Увольте! Тогда уж лучше взять более крупный МК, где на 2 порта больше. - Ксения(24.02.2013 23:13)
- Тогда уж лучше взять еще один МК и сделать терминальчик с LCD и тремя кнопками и общаться с ним через UART :) - rezident(24.02.2013 23:16)
- SPI=HCT164+LCD+кнопки. - ilyaul(24.02.2013 23:45)
- Угу. Наверное, именно поэтому в автомобиле так много МК. :) - Ксения(24.02.2013 23:40)
- Тогда уж лучше взять еще один МК и сделать терминальчик с LCD и тремя кнопками и общаться с ним через UART :) - rezident(24.02.2013 23:16)
- Два дополнительных порта за лишний корпус + причудливое программирование? :) Увольте! Тогда уж лучше взять более крупный МК, где на 2 порта больше. - Ксения(24.02.2013 23:13)
- Дык дополните этот индикатор PCF8575 - всего два пина займет SCL и SDA. Ну или пару 74HC595 поставить - для управления три провода. Только использовать лучше индикаторы у которых общие аноды - меньше доп. ключей для управления ими придется rezident(56 знак., 24.02.2013 23:06 - 23:14)
- Расхотелось... Этакая штуковина у меня все порты МК займет, для дела не останется. - Ксения(24.02.2013 22:58)
- Это "голый" индикатор, а не готовый модуль индикации. Есть такие же и на 4 знака. - rezident(24.02.2013 22:41, ссылка)
- А это что за фигня, которая 256 кажет? Тоже такую хочу!!! :) Назовите, как ее полностью кличут. - Ксения(24.02.2013 22:31)
- А у меня вот такая макетка, проводочками распаяна ATmega8, поэтому на ней и делаю все свои проекты. Леонид Иванович(24.02.2013 21:16)
- У меня вот такая. Тут уже и кнопка под INT0 разведена, и есть готовый стабилизатор питания + кварц + светодиодик + MAX232 + разъем RS232 + разъем для программатора + кнопочка для Reset. И еще много-много пустых дырочек, омедненных снизу. Только МК Ксения(52 знак., 24.02.2013 19:44 - 19:46, картинка)
- Кстати! А возможно ли сгенерить этот импульс программно? Скажем, установить этот пин на out, а потом им подёргать. От этого прерывания возникнуть должны? Или в режиме out они не работают? - Ксения(24.02.2013 19:38)
- Причём на +5 :) Для надёжности срабатывания :) - ilyaul(24.02.2013 19:02)
- Угу, коротнуть его на +питания отверткой и посмотреть, чего будет :) - Ксения(24.02.2013 18:57)
- Если используется один из режимов Sleep Mode, то прерывания по фронту INT0 и INT1 работают только в режиме Idle, а прерывания по уровню - в любом. - ВВ(24.02.2013 11:15, )
- Как ты удачно вышел со своим прерыванием. :) А то как-то давно поглядел в даташит. Мама дорогая, сколько этих регистров и как там все запутано с этими PCINT! Ну хоть разобрался. А то ни разу не использовал кристаллы с выбором пинов для mazur(23 знак., 24.02.2013 08:43)
- В железе не работает или в симуляторе? Выложи код инициализации внешнего прерывания и кусок, после которого работать внешнее прерывание. Кстати, как вариант. Неправильное сохранение SREG. Если ошибиться, то может так сохранять, что прерывание mazur(164 знак., 24.02.2013 06:05)
- Если вольты сказал, значить в железе. Я тоже вначале на симулятор подумал. "Врач должен быть не только небрезгливым, но еще и внимательным" :) - Codavr(24.02.2013 06:21)
- ну таких ошибок я уж лет 15 как не допускаю :)) в прерывание даже не заходит (у меня там маркер на пин стоит) - login_impossible(24.02.2013 06:09, )
- кстати, не работает ни в железе ни в симуляторе. в симуляторе вообще никакие прерывания не обрабатываются (может это именно для 88-й меги глюк такой, потому как и в тайнях всяких и в меге16 и в иксмеге все более-менее адекватно работало в 4-й login_impossible(8 знак., 24.02.2013 06:11, )
- Какая студия сейчас? - mazur(24.02.2013 06:13)
- 4.19.730 - login_impossible(24.02.2013 06:17, )
- Какая студия сейчас? - mazur(24.02.2013 06:13)
- Ты можешь хоть большим пальцем левой ноги код писать. Но ведь обратился же сюда? Код в студию! - mazur(24.02.2013 06:10)
- говорю ж маркер у меня там (ногодрыгалка), а из кода что конкретно интересует (программа довольно сложная - 7 кило и вся на асме). В общем-то с прерываниями никогда проблем не испытывал, но тут - прямо уж не знаю что и предположить :((( забодался login_impossible(5 знак., 24.02.2013 06:20, )
- Либо сделай проверочный код. Скажем, зажечь светик в прерывании. Создай пустой проект. Только включено внешнее прерывание. И тестовый код. Отсюда и исходи. - mazur(24.02.2013 06:12)
- кстати, не работает ни в железе ни в симуляторе. в симуляторе вообще никакие прерывания не обрабатываются (может это именно для 88-й меги глюк такой, потому как и в тайнях всяких и в меге16 и в иксмеге все более-менее адекватно работало в 4-й login_impossible(8 знак., 24.02.2013 06:11, )
- облом доки смотреть - случаем не по уровню прерывание? - Vit(24.02.2013 05:23)
- см ниже настройки EICRA - login_impossible(24.02.2013 05:27, )
- я регистры AVR уже не помню - Vit(24.02.2013 05:33)
- по фронту, в общем - login_impossible(24.02.2013 05:34, )
- я регистры AVR уже не помню - Vit(24.02.2013 05:33)
- Если он импульс дает, то полюбому должно выскочить что бы не прописал. - Codavr(24.02.2013 05:24)
- Если тактовая низкая, а на входе синхронизатор, то можно пропустить - Vit(24.02.2013 05:38, ссылка)
- Он внизу грозился до миллисекунды импульс уронить. Не думаю что тактовая меньше :) - Codavr(24.02.2013 05:43)
- 8MHz - login_impossible(24.02.2013 05:40, )
- может фуз на внутренний RC переключил, а ещё встречался (кажись тоже в 88) делитель на 8 по умолчанию - Vit(24.02.2013 05:57)
- не, тут всё чётко. Да и иначе у меня бы ни I2C ни UART не работали бы как надо - login_impossible(24.02.2013 05:59, )
- :)если программа работает, значит количество ошибок четное(С) - Vit(24.02.2013 06:03)
- не, тут всё чётко. Да и иначе у меня бы ни I2C ни UART не работали бы как надо - login_impossible(24.02.2013 05:59, )
- может фуз на внутренний RC переключил, а ещё встречался (кажись тоже в 88) делитель на 8 по умолчанию - Vit(24.02.2013 05:57)
- Если тактовая низкая, а на входе синхронизатор, то можно пропустить - Vit(24.02.2013 05:38, ссылка)
- см ниже настройки EICRA - login_impossible(24.02.2013 05:27, )
- Может быть импульс отрицательной полярности? :) - Ксения(24.02.2013 05:06)
- не, сугубо положительной, и для int0 очень даже привлекательной формы хттп://savepic.ru/4101882.gif - login_impossible(24.02.2013 05:29, )
- DDRD2=0 - Codavr(24.02.2013 04:35)
- не оно разве: OUTIDDRB,0b00000010 :)) - login_impossible(24.02.2013 04:38, )
- сори, не то скопипастил :))) OUTI DDRD,0b10110010 - login_impossible(24.02.2013 04:40, )
- Ну да, тут на сахаре сидят гении с феноменальной памятью. И все биты всех AVR помнят. А что не помнят, телепатируют прямо с сайта atmel.com. mazur(131 знак., 24.02.2013 05:52)
- ну дык для кадавра написано, он 2-й бит советовал в нолик поставить, я ему и написал, что 2-й бит у меня в нолике, только командой асма :)) (ну да он понял наверняка :)) - login_impossible(24.02.2013 05:55, )
- Я в него столько раз осцилом тыкал, что меня можно ночью разбудить в пьяном угаре и я скажу DDRD2. Левый сверху :))) - Codavr(24.02.2013 06:01 - 06:06)
- а как себя ведут на меге88 пин чендж интеррупты (мож вместо инт0 их попролбовать??) - login_impossible(24.02.2013 06:06, )
- Оно дает прерывание по обоим фронтам. Да и нафига. Проверь пин на рабочесть. Ну чиста прочитал и вывел его значение в другой. Потом залей простейшую прогу которая только на прерывание реагирует и инвертирует какойнить пин при возникновении Codavr(80 знак., 24.02.2013 06:18)
- пин по крайней мере на вывод, живой (на ввод тоже, кстати читается) прогу тестовую писать больщого смысла нет, так как после определённых хитроумных манипуляций и подпрограмм, прога выходит в главный цикл, в котором успешно крутится, прерываясь login_impossible(816 знак., 24.02.2013 06:34, )
- может какие регистры нужно грузить по OUT, а не по LD/MOV или наоборот... (пишу на С, потому таким не заморачиваюсь) - Vit(24.02.2013 06:47)
- см. сообщение вверху страницы "**** "вторая часть..." Чудеса, да и только :(( - login_impossible(24.02.2013 06:50, )
- может какие регистры нужно грузить по OUT, а не по LD/MOV или наоборот... (пишу на С, потому таким не заморачиваюсь) - Vit(24.02.2013 06:47)
- пин по крайней мере на вывод, живой (на ввод тоже, кстати читается) прогу тестовую писать больщого смысла нет, так как после определённых хитроумных манипуляций и подпрограмм, прога выходит в главный цикл, в котором успешно крутится, прерываясь login_impossible(816 знак., 24.02.2013 06:34, )
- Оно дает прерывание по обоим фронтам. Да и нафига. Проверь пин на рабочесть. Ну чиста прочитал и вывел его значение в другой. Потом залей простейшую прогу которая только на прерывание реагирует и инвертирует какойнить пин при возникновении Codavr(80 знак., 24.02.2013 06:18)
- а как себя ведут на меге88 пин чендж интеррупты (мож вместо инт0 их попролбовать??) - login_impossible(24.02.2013 06:06, )
- однако я честно говоря удивлён скольким людям по ночам не спится, тем более в праздничный выходной день :)) я думал я один такой "не от мира сего" :))) - login_impossible(24.02.2013 05:57, )
- У нас 9. Ну, у меня все просто объясняется. Жена в гости уехала. Я вроде как должен был тоже приехать, но планы поменялись, остался дома. Выпил немножко. Рано уснул. Проснулся в третьем часу. Выспался. Вот и не сплю до сих пор. - mazur(24.02.2013 06:09)
- у нас ночь (или ранне утро - 4 часа) - Vit(24.02.2013 05:59)
- И у нас тоже раннее - 6 часов. Надо попробовать уснуть :) - Codavr(24.02.2013 06:03)
- Я в него столько раз осцилом тыкал, что меня можно ночью разбудить в пьяном угаре и я скажу DDRD2. Левый сверху :))) - Codavr(24.02.2013 06:01 - 06:06)
- ну дык для кадавра написано, он 2-й бит советовал в нолик поставить, я ему и написал, что 2-й бит у меня в нолике, только командой асма :)) (ну да он понял наверняка :)) - login_impossible(24.02.2013 05:55, )
- Ох уж мне эти апологеты асма :) Ну пин штоль проверь на целостность. Вроде уже все посоветовали. - Codavr(24.02.2013 04:42 - 04:47)
- как говорил один мой знакомый программер (весьма, кстати высокооплачиваемый :))): "...я слишком тупой, чтобы писать на Си" :)))) (да не начнётся, надеюсь, холивар :)) - login_impossible(24.02.2013 04:49, )
- Много лет писал на асме, а потом потребовалось сделать много вычислений с плавающей точкой. Стоп сказал я себе. Давай ко поищем сишный компилер, благо тогда уже инет появился :) - Codavr(24.02.2013 04:55 - 05:05)
- давно для себя решил, что, в принципе 32-битной целочисленной арифметики достаточно для решений практически любых задач. - login_impossible(24.02.2013 05:31, )
- Много лет писал на асме, а потом потребовалось сделать много вычислений с плавающей точкой. Стоп сказал я себе. Давай ко поищем сишный компилер, благо тогда уже инет появился :) - Codavr(24.02.2013 04:55 - 05:05)
- как говорил один мой знакомый программер (весьма, кстати высокооплачиваемый :))): "...я слишком тупой, чтобы писать на Си" :)))) (да не начнётся, надеюсь, холивар :)) - login_impossible(24.02.2013 04:49, )
- Ну да, тут на сахаре сидят гении с феноменальной памятью. И все биты всех AVR помнят. А что не помнят, телепатируют прямо с сайта atmel.com. mazur(131 знак., 24.02.2013 05:52)
- сори, не то скопипастил :))) OUTI DDRD,0b10110010 - login_impossible(24.02.2013 04:40, )
- не оно разве: OUTIDDRB,0b00000010 :)) - login_impossible(24.02.2013 04:38, )
- и вроде выпил-то пару-тройку стопариков :))) - login_impossible(24.02.2013 03:55, )
- Еще мудрый совет :) - этот пин случайно на out не запрограммирован? GIFR и GICR в порядке? - Ксения(24.02.2013 04:21)
- пин запрограммирован на In, подтяжка отключена, EICRA=0b00000011, EIMSK=0b00000001 (I в SREG, есс-но = "1") - login_impossible(24.02.2013 04:30, )
- Ну, тогда может быть хендлер с ошибкой определили - в слове INT0 вместо нулика букву "О" написали :). Вы листиг смотрели? В таблице прерываний адрес нормально прописался? - Ксения(24.02.2013 04:15)
- да правильно всё там+00000001: C02F RJMP PC+0x0030 Relative jump....@00000031: IntGM_PulseCounting104: PUSH_TMP_SREG - login_impossible(24.02.2013 04:34, )
- Еще мудрый совет :) - этот пин случайно на out не запрограммирован? GIFR и GICR в порядке? - Ксения(24.02.2013 04:21)
- Прерывания разрешить не забыли? А то это наиболее частая ошибка - люди забывают, что стартует МК с запрещенными прерываниями. - Ксения(24.02.2013 03:50)
- обижаете (уж 2-я сотня килобайт ассемблерного кода за плечами :)) - login_impossible(24.02.2013 03:53, )
- ну и потом у меня там прерывания используются (TC2,UART,TWI,ADC) но int0 просто какой-то ппц :(( не хочет видеться (мож с генератора в него шурнуть импульс 3В 1мС, а то может он 1мкс не видит ?? :(( - login_impossible(24.02.2013 04:13, )
- А! Так остальные прерывания у вас работают? - Ксения(24.02.2013 04:16)
- все что написал, кроме INT0 :(( - login_impossible(24.02.2013 04:19, )
- А! Так остальные прерывания у вас работают? - Ксения(24.02.2013 04:16)
- ну и потом у меня там прерывания используются (TC2,UART,TWI,ADC) но int0 просто какой-то ппц :(( не хочет видеться (мож с генератора в него шурнуть импульс 3В 1мС, а то может он 1мкс не видит ?? :(( - login_impossible(24.02.2013 04:13, )
- обижаете (уж 2-я сотня килобайт ассемблерного кода за плечами :)) - login_impossible(24.02.2013 03:53, )
- Не нравится мне Ваш импульс.Скорее всего его не успеват mega поймать. Для фронтов , как Вы знаете , всё таки требуется синхронизация. - ilyaul(24.02.2013 18:47)