Перейти к содержанию
    

DEST26

Новичок
  • Постов

    2
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о DEST26

  • День рождения 21.02.1981

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array
  1. Плуганул с фьюзами

    http://startcd.narod.ru/rstdisbl_mega8/rstdisbl.htm Можешь так попробовать, сам не пробовал поэтому утверждать что работает небуду.
  2. С протеусом есть засада в динамической индикации. Решение проблемы в следующем, после засветки индикатора далать паузу от 1 мс. Кстати прога написана верно, поставить нужно только задержку. А по поводу симуляторов. Я Уважаю людей которым уже далеко за 40 а они стараются разобраться с новым софтом и железом. Но Александр вы прекрасно знаете в каком городе мы живем. Если-бы не Стелл мы бы электронщики вымерли как мамонты. Для меня спалить очередной МК из разряда траура, т.к. покупка нового сопряжена с определенными проблемами. И в довесок очень часто я программирую на работе, а всю домашнюю приблуду на работу не потянешь, а протеус позволяет мне в рабочее время спокойненько отлаживать свои устройства. Вот в довесок код из часов что делал я. В протеусе работает великолепно. В железе пока не собирал, у меня сыну 10 месяцев иногда даж посидеть некогда :-) unsigned char ind(unsigned char a) // перевод числа в символьное представление { unsigned char b; switch (a) { case 0: // 0 b = 0b00111111; break; case 1: // 1 b = 0b00000110; break; case 2: // 2 b = 0b01011011; break; case 3: // 3 b = 0b01001111; break; case 4: // 4 b = 0b01100110; break; case 5: // 5 b = 0b01101101; break; case 6: // 6 b = 0b01111101; break; case 7: // 7 b = 0b00000111; break; case 8: // 8 b = 0b01111111; break; case 9: // 9 b = 0b01101111; break; } return b; } void indicator (unsigned char c,unsigned char d,unsigned char e,unsigned char f) // вывод числел на индикаторы { if (PINB.2) { PORTD = c; PORTC.1=0; delay_ms(1); PORTC.1=1; // Второй разряд if (sec%2) // Моргание точечкой каждую секунду { PORTD = d | 0b10000000; PORTC.2=0; delay_ms(1); PORTC.2=1; PORTD = 0; } else { PORTD = d; PORTC.2=0; delay_ms(1); PORTC.2=1; PORTD = 0; } // Третий разряд PORTD = e; PORTC.3=0; delay_ms(1); PORTC.3=1; // Четвёртый разряд PORTD = f; PORTC.4=0; delay_ms(1); PORTC.4=1; } } // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { indicator( ind(min/10), ind(min%10), ind (sec/10), ind (sec%10) ); }
×
×
  • Создать...