atmega 8 связь с семисегментным индикатором

Обсуждаем контроллеры компании Atmel.
Ответить
lelik-balabolik
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 14, 2015 22:18:43

atmega 8 связь с семисегментным индикатором

Сообщение lelik-balabolik »

привет всем. я начинающий потому не смейтесь. есть переменная которую я изменяю кнопками.... и порт которому присваиваю значение, на порт подвешен семисегментный индикатор с четырьмя ногами (BCD) он мне в 16ричной системе циферки показывает. ВОПРОС: КАК СДЕЛАТЬ ТАК ЧТО БЫ В ДЕСЯТИЧНОЙ ПОКАЗЫВАЛ? Тип переменной int. работает как счётчик.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: atmega 8 связь с семисегментным индикатором

Сообщение Аlex »

Странный какой-то вопрос. Очевидно же - переписать программу так, чтобы на индикатор можно было выводить десятичные цифры :roll:
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: atmega 8 связь с семисегментным индикатором

Сообщение pyzhman »

lelik-balabolik писал(а):...с четырьмя ногами (BCD) ...

Эмулятор? Протеус? Программу кто писал?
Docendo discimus
Андрей СШ
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Re: atmega 8 связь с семисегментным индикатором

Сообщение Андрей СШ »

Если индикатор одноразрядный, то просто не выводить на него значения больше 9-и. Всё равно не влезет.
lelik-balabolik
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 14, 2015 22:18:43

Re: atmega 8 связь с семисегментным индикатором

Сообщение lelik-balabolik »

привет всем. Alex в том то и состоит вопрос как и что дописать что бы на индикаторы (2 шт продлючены к порту D один соответственнно на ноги 1-4 , второй на ноги 5-8) . теперь про саму переменную. тип unsignet int. работает так. если pinc0==1 то a++, если pinc2==1 то а--. после чего вот так PortD=a. вот . и оно мне циферки показывает но в шеснадцатиричной системе. а хочется в десятичной. что нужно дописать?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: atmega 8 связь с семисегментным индикатором

Сообщение ARV »

вместо PORTD = a; написать это

Код: Выделить всё

if(a > 99) a=0;
PORTD = (a % 10) | ((a / 10) << 4);
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
lelik-balabolik
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 14, 2015 22:18:43

Re: atmega 8 связь с семисегментным индикатором

Сообщение lelik-balabolik »

СПАСИБИЩЕ!!!!!!!!!! Я СОВСЕМ ЗАБЫЛ ПРО % ЗАДАЮЩИЙ ФОРМАТ!!!!!!!
lelik-balabolik
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 14, 2015 22:18:43

Re: atmega 8 связь с семисегментным индикатором

Сообщение lelik-balabolik »

дружище скинь реквизиты я те хоть на пиво пришлю.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: atmega 8 связь с семисегментным индикатором

Сообщение ARV »

lelik-balabolik писал(а):дружище скинь реквизиты я те хоть на пиво пришлю.
детям Донбасса пожертвуй
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
lelik-balabolik
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 14, 2015 22:18:43

Re: atmega 8 связь с семисегментным индикатором

Сообщение lelik-balabolik »

Как скажешь. Вот ещё вопрос. есть иф елс и порт настроеный на выход. как написать код чтоб именно конкретная нога меняла состояние при выполнении ифа.... тоесть я не умею обращаться к конкретной ноге порта. подскажите( сама задумка в том что разные ифы будут управлять разными ногами одного порта)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: atmega 8 связь с семисегментным индикатором

Сообщение ARV »

PD3 - четвертая нога порта D
вот так можно поменять на противоположный уровень по if

Код: Выделить всё

if(some_condition){
   // меняем состояние ноги
   PORTD ^= 1 << PD3;
} else {
   // делаем что-то иное
}
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
lelik-balabolik
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 14, 2015 22:18:43

Re: atmega 8 связь с семисегментным индикатором

Сообщение lelik-balabolik »

Спс. Есть ещё вопрос. Существует функция _delay_ms () . как сделать что бы её время указанное в скобках изенялось. тоесть было переменной а не константой. пробовал писать переменную типа int-работать не хочет.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: atmega 8 связь с семисегментным индикатором

Сообщение ARV »

lelik-balabolik писал(а):Есть ещё вопрос. Существует функция _delay_ms () . как сделать что бы её время указанное в скобках изенялось. тоесть было переменной а не константой
есть два пути, как это сделать: читать документацию и много думать и задать вопрос и скопипастить ответ:

Код: Выделить всё

void delay(int d){
   if(!d) return;
   for(; d; d--) _delay_ms(1);
}
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
SopaXorzTaker
Родился
Сообщения: 13
Зарегистрирован: Чт авг 06, 2015 22:15:54

Re: atmega 8 связь с семисегментным индикатором

Сообщение SopaXorzTaker »

lelik-balabolik писал(а):СПАСИБИЩЕ!!!!!!!!!! Я СОВСЕМ ЗАБЫЛ ПРО % ЗАДАЮЩИЙ ФОРМАТ!!!!!!!

Здесь это не формат, а операция "модуль".
Хуй российскому фашизму!
Ответить

Вернуться в «AVR»