Proteus не работает транзистор

Proteus не работает транзистор

static flash unsigned char digit[] = <

(0b01101111), // 9
>;
////
unsigned char sek;
bit m;
////
interrupt [TIM2_COMP] void timer2_comp_isr(void)
<
TCNT2=0b00000000; //счетный регистр 0-255
sek++;
if(sek>=100) <
sek=0;>
>
//вывод на индикатор
void ind(unsigned char chislo)
<
unsigned char des=0;
while(chislo>=10)<
chislo-=10; //вычитаем и присваиваем заново
des++;>

if(m==0)<
PORTB.0=1;
PORTD=digit[des];
delay_ms(5);
PORTB.0=0;
PORTB.1=1;
PORTD=digit[chislo];
delay_ms(5);
PORTB.1=0;>
>
//////////////
void main (void)<
PORTB=0b00000000;
DDRB= 0b00000011;

//настройки 2 таймера и его прерываний
ASSR= 0b00001000;
TCCR2=0b00000110; //деление 32768 на 256
TCNT2=0b00000000; //счетный регистр 0-255
OCR2=127; //регистр сравнения
TIMSK=0b10000000;

Реклама
codenamehawk
Потрогал лапой паяльник

Карма: 1
Рейтинг сообщений: 11
Зарегистрирован: Вт фев 09, 2010 17:52:26
Сообщений: 320
Рейтинг сообщения: 0

Лишний кусок кода.

Попробуйте заменить на.

Ваша программа, если работает в Протеусе, должна работат и в проце.
Возмозно в проце выставлена работа от внешнего кварца.

Реклама

JLCPCB, всего $2 за прототип печатной платы! Цвет — любой!

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

moonlight1
Открыл глаза

Зарегистрирован: Вс июн 28, 2015 18:07:39
Сообщений: 62
Откуда: Алтайский край, город Бийск
Рейтинг сообщения: 0

Реклама

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Vov123
Опытный кот

Карма: 1
Рейтинг сообщений: 52
Зарегистрирован: Чт мар 12, 2009 16:31:05
Сообщений: 804
Рейтинг сообщения: 0

Реклама

Connfly, один из ведущих азиатских производителей стандартных соединителей, и Компэл в рамках партнерской программы по развитию склада представляют установочные панели для микросхем. Панельки серии DS1001-01 выполнены в корпусе Dual In-Line и предназначены для многократного размещения и подключения DIP-интегральных схем в электронные устройства.

Z_h_e
Собутыльник Кота

Карма: 25
Рейтинг сообщений: 637
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2647
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1

_________________

Добро всегда побеждает зло. Поэтому кто победил — тот и добрый.

Реклама
Реклама

Компэл 28 октября приглашает всех желающих принять участие в вебинаре, где будет рассмотрена новая и перспективная продукция компании Traco. Мы подробно рассмотрим сильные стороны и преимущества продукции Traco, а также коснемся практических вопросов, связанных с измерением уровня шумов, промывкой изделий после пайки и отдельно разберем, как отличить поддельный ИП Traco от оригинала.

moonlight1
Открыл глаза

Зарегистрирован: Вс июн 28, 2015 18:07:39
Сообщений: 62
Откуда: Алтайский край, город Бийск
Рейтинг сообщения: 0

Реклама

Z_h_e
Собутыльник Кота

Карма: 25
Рейтинг сообщений: 637
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2647
Откуда: г. Чайковский
Рейтинг сообщения: 2
Медали: 1

_________________

Добро всегда побеждает зло. Поэтому кто победил — тот и добрый.

Реклама

moonlight1
Открыл глаза

Зарегистрирован: Вс июн 28, 2015 18:07:39
Сообщений: 62
Откуда: Алтайский край, город Бийск
Рейтинг сообщения: 0

unsigned char number[] =
<

unsigned char count = 0;

//числа для вывода на индикатор
unsigned char data1 = 9;
unsigned char data2 = 9;
unsigned char data3 = 5;

void main( void )
<
//порт, к которому подкл. сегменты
PORTD = 0xff;
DDRD = 0xff;

//порт, к которому подкл. анод
PORTB = 0;
DDRB = (1 =10) <
data3-=10;
data2++;>
while(data2>=10) <
data2-=10;
data1++;>
if(data1==10)

count++;
if (count == 3) count = 0;
delay_ms(10);

Реклама

Z_h_e
Собутыльник Кота

Карма: 25
Рейтинг сообщений: 637
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2647
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1

Да я и не говорил что у Вас нули показывает из-за перегрузки порта.

Попробуйте функцию ind вызывать редко, например раз 3 сек и используйте в параметре не переменную, а некое число. Может увидите, что у Вас происходит и локализуете проблему.

_________________

Добро всегда побеждает зло. Поэтому кто победил — тот и добрый.

moonlight1
Открыл глаза

Зарегистрирован: Вс июн 28, 2015 18:07:39
Сообщений: 62
Откуда: Алтайский край, город Бийск
Рейтинг сообщения: 0

Да я и не говорил что у Вас нули показывает из-за перегрузки порта.

Попробуйте функцию ind вызывать редко, например раз 3 сек и используйте в параметре не переменную, а некое число. Может увидите, что у Вас происходит и локализуете проблему.

COKPOWEHEU
Сверлит текстолит когтями

Карма: 8
Рейтинг сообщений: 188
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1203
Рейтинг сообщения: 3

moonlight1
Открыл глаза

Зарегистрирован: Вс июн 28, 2015 18:07:39
Сообщений: 62
Откуда: Алтайский край, город Бийск
Рейтинг сообщения: 0

COKPOWEHEU
Сверлит текстолит когтями

Карма: 8
Рейтинг сообщений: 188
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1203
Рейтинг сообщения: 0

(1 1)digit = 0; //знаю, что можно обойтись инверсией младшего бита, но этот вариант проще масштабировать
>

//вывод целого числа (0-99)
void OutInt(unsigned char data) <
char dec;
while(data > 10) <
dec++;
data -= 10;
>
video_buf[1] = pgm_read_byte( &num[ dec ] );
video_buf[0] = pgm_read_byte( &num[ data ] );
>

moonlight1
Открыл глаза

Зарегистрирован: Вс июн 28, 2015 18:07:39
Сообщений: 62
Откуда: Алтайский край, город Бийск
Рейтинг сообщения: 0

т.е. не важно как будут подключены выводы к мк? круто если так.
все понял в чем соль, не надо считать по битам легко прикинуть как будет.

COKPOWEHEU
Сверлит текстолит когтями

Карма: 8
Рейтинг сообщений: 188
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1203
Рейтинг сообщения: 0

Владимир-32
Родился

Зарегистрирован: Ср авг 08, 2018 20:50:08
Сообщений: 1
Рейтинг сообщения: 0

B@R5uk
Собутыльник Кота

Карма: 29
Рейтинг сообщений: 714
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Сообщений: 2743
Откуда: приходит весна?
Рейтинг сообщения: 3

Z_h_e
Собутыльник Кота

Карма: 25
Рейтинг сообщений: 637
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2647
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1

Добавлено after 12 minutes 14 seconds:

_________________

Добро всегда побеждает зло. Поэтому кто победил — тот и добрый.

B@R5uk
Собутыльник Кота

Карма: 29
Рейтинг сообщений: 714
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Сообщений: 2743
Откуда: приходит весна?
Рейтинг сообщения: 0

Z_h_e
Собутыльник Кота

Карма: 25
Рейтинг сообщений: 637
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2647
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1

Если бы контроллер не инициализировал РВВ так как написано, он бы не работал в принципе.

Если Вам попался неисправный МК, то никакие «правила сделать на всякий случай которые все программисты знают» не помогут.
Если есть такой явный баг, он по-любому будет описан в erratа или в свежем ДШ.

_________________

Добро всегда побеждает зло. Поэтому кто победил — тот и добрый.

Страница 1 из 2 [ Сообщений: 29 ] На страницу 1 , 2 След.

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

Источник

Читайте также:  Не работает подсветка ног паджеро 4
Оцените статью