есть устройство с МК- часы. Я из кроватки извлекаю их МК 8951... как-то так, подпаиваю на макетке свой- мегу8. Пока у нее ноги в воздухе, я вижу импульсы мои. Но как только я подпаиваюсь этими ногами к реальной схеме, где был старый МК, то у меня вместо импульсов прямая линия вольта 4 ??? И так со всеми сигналами. Почему так происходит? Может наводки так влияют?
Потому что надо стыковать по уму. И программу писать соответственно. Где ваша схема? Где ваша программа? PS. А то получается - "Догадайтесь, тм, что мне надо".
делаю затем, что часы глючат- меняю контроллер на другой и вешаю его на место старого. Меняю на тот, кот. умею писать. И чем они там не стыкуются? Уровнями может? схема- обычная- вывод контроллера подключаю на вход к561ир2. код с меги вот-
Код:
char __low_level_init (void) { // эта функция вызывается сразу после // включения процика после установки // указателей стека. // Здесь можно настроить периферию
PORTB = (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0); // все ноги в 0 DDRB =(1<<7)|(1<<6)|(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(1<<0); // все ноги на вывод
PORTD = (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0); // все ноги в 0 DDRD =(1<<7)|(1<<6)|(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(1<<0); // все ноги на вывод
PORTC = (0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0); // все ноги в 0 DDRC =(1<<7)|(1<<6)|(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(1<<0); // все ноги на вывод
return 1; // После возвращения проинициальзировать память } //====================== //**************************************************************************** //==== подфункции ====== void Delay(uint32_t t) // только с большой буквы Delay!!! Конфликтует. { // на задержке noop volatile uint32_t i; for(i = 0; i < t; i++) { } } //======================= void clk (void) { on (C); Delay (dl); off (D); off (C); } //====================== // зажечь индикатор и цифру на нем void show (uint8_t number, uint8_t digit) { if (digit == 0) { off (D); //0 clk ();
а почему так не хочет работать? Может наводки? Так-то есть макетка, и смысла получить именно совместимость нет. Но почему себя так ведет он? На столько критичен к наводкам? Там импульсный БП стоит.
ну нет у меня схемы, есть в голове она. Вывод МК подсоединяю к ноге к561ИР2, вместо старого контроллера. Да, подсоединяю длинным проводом- 15 см.
А как вы подсоединяетесь? МК на макетке, потом у вас шлейф идет на плату часов и он вставлен в панельку? Не забыли перед всем этим земли схем объединить? Не забыли подать питание на обе платы перед соединением их сигнальными проводами?
В конце концов, чем и как проверяете уровни на выводах?
МК мега8 на макетке. Потом с макетки идут провода, подпаяны к ногам ИР2. Питание и земли общие с часами- снял +5 с кроватки старого МК. Старого МК, конечно, нет на плате. Смотрю осциллом RIGOL 1062DC
Конкретное что-то сказать не могу. Попробуйте вот что:
1) на висящий свободно вывод МК подавайте повторяющийся импульс. После включения убедитесь, что МК сам по себе запускается и работает нормально, когда он подпаян к плате часов. 2) перепишите программу так, чтобы вместо сигнала МК выводил на порты статичное значение лог. 0 и проверьте напряжение еще раз. 3) со старым МК схема часов все еще работает? Проверьте.
ЗЫ Тоесть у вас именно мега8, не 8515? Разницы собственно никакой, но вторая, как уже заметили, совместима с вашим старым МК.
да, именно мега8. другого просто нет, и ехать за ним лень) идея хорошая- вывести лог 0 и увидеть уровни. Поэкспериментирую вечером сегодня или завтра с утра. Отпишусь. Всем спасибо.
не заметил подтяжки входов ИР2 к +5В. Зачем они- загадка. Забросил я это дело, т.к. невозможно что-то сотворить путное там, т.к. даже оторвав подтяжки эти, получил завалы срезов. Если переделывать, то полностью и схему надо.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения