atmega 8 связь с семисегментным индикатором
-
lelik-balabolik
- Первый раз сказал Мяу!
- Сообщения: 28
- Зарегистрирован: Чт май 14, 2015 22:18:43
atmega 8 связь с семисегментным индикатором
привет всем. я начинающий потому не смейтесь. есть переменная которую я изменяю кнопками.... и порт которому присваиваю значение, на порт подвешен семисегментный индикатор с четырьмя ногами (BCD) он мне в 16ричной системе циферки показывает. ВОПРОС: КАК СДЕЛАТЬ ТАК ЧТО БЫ В ДЕСЯТИЧНОЙ ПОКАЗЫВАЛ? Тип переменной int. работает как счётчик.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: atmega 8 связь с семисегментным индикатором
Странный какой-то вопрос. Очевидно же - переписать программу так, чтобы на индикатор можно было выводить десятичные цифры 
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: atmega 8 связь с семисегментным индикатором
lelik-balabolik писал(а):...с четырьмя ногами (BCD) ...
Эмулятор? Протеус? Программу кто писал?
Docendo discimus
Re: atmega 8 связь с семисегментным индикатором
Если индикатор одноразрядный, то просто не выводить на него значения больше 9-и. Всё равно не влезет.
-
lelik-balabolik
- Первый раз сказал Мяу!
- Сообщения: 28
- Зарегистрирован: Чт май 14, 2015 22:18:43
Re: atmega 8 связь с семисегментным индикатором
привет всем. 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 связь с семисегментным индикатором
вместо 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
- Первый раз сказал Мяу!
- Сообщения: 28
- Зарегистрирован: Чт май 14, 2015 22:18:43
Re: atmega 8 связь с семисегментным индикатором
дружище скинь реквизиты я те хоть на пиво пришлю.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: atmega 8 связь с семисегментным индикатором
детям Донбасса пожертвуйlelik-balabolik писал(а):дружище скинь реквизиты я те хоть на пиво пришлю.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
lelik-balabolik
- Первый раз сказал Мяу!
- Сообщения: 28
- Зарегистрирован: Чт май 14, 2015 22:18:43
Re: atmega 8 связь с семисегментным индикатором
Как скажешь. Вот ещё вопрос. есть иф елс и порт настроеный на выход. как написать код чтоб именно конкретная нога меняла состояние при выполнении ифа.... тоесть я не умею обращаться к конкретной ноге порта. подскажите( сама задумка в том что разные ифы будут управлять разными ногами одного порта)
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: atmega 8 связь с семисегментным индикатором
PD3 - четвертая нога порта D
вот так можно поменять на противоположный уровень по if
вот так можно поменять на противоположный уровень по if
Код: Выделить всё
if(some_condition){
// меняем состояние ноги
PORTD ^= 1 << PD3;
} else {
// делаем что-то иное
}если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
lelik-balabolik
- Первый раз сказал Мяу!
- Сообщения: 28
- Зарегистрирован: Чт май 14, 2015 22:18:43
Re: atmega 8 связь с семисегментным индикатором
Спс. Есть ещё вопрос. Существует функция _delay_ms () . как сделать что бы её время указанное в скобках изенялось. тоесть было переменной а не константой. пробовал писать переменную типа int-работать не хочет.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: atmega 8 связь с семисегментным индикатором
есть два пути, как это сделать: читать документацию и много думать и задать вопрос и скопипастить ответ: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 связь с семисегментным индикатором
lelik-balabolik писал(а):СПАСИБИЩЕ!!!!!!!!!! Я СОВСЕМ ЗАБЫЛ ПРО % ЗАДАЮЩИЙ ФОРМАТ!!!!!!!
Здесь это не формат, а операция "модуль".
Хуй российскому фашизму!