Jump to content
Александр5786336

вывод кода на 7-сегментник

Recommended Posts

Подскажите пожалуйста в чем может быть проблема, должно быть нажимаем на одну из 5 кнопок, а мк выводит на 7сег номер кнопки, сейчас если начинаем счет с 5ой и по убыванию то норм, если с 0 и по возрастанию то выводит только 0.  до этого пробовал через switch результат такой же

fine F_CPU 8000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

unsigned char temp,rab,count,but;
unsigned char *point;
unsigned char mas[10]={0x3F,0x6,0x5B,0x4F,0x66,0x6D,0x7D,0x7,0x7F,0x6F};

void initport()
{
    DDRD=0x00;
    PORTD=0x00;
    DDRB=0xFF;
    PORTB=0x00;
    ACSR=0x80;
}
void inittimer()
{
    TCCR1B|=(1<<WGM12)|(1<<CS12)|(1<<CS10);
    TIMSK|=(1<<OCIE1A);
    OCR1A=487;
    TCNT1=0;
}
unsigned char conversion(i)
{
    but=*(point+i);
    return but;
}
int main(void)
{
    initport();
    inittimer();
     point=&mas;
    while(1)
    {       
        if (PIND!=0)
        {
            _delay_ms(100);
                while((PIND&(1<<count))==0)
               {
                  ++count;
               }    
            PORTB=conversion(count);   
            count=0;
        } 
    }
}

Без имени.png

Без имени1.png

Share this post


Link to post
Share on other sites
1 час назад, Александр5786336 сказал:

    DDRD=0x00;
    PORTD=0x00;

это в таком виде вообще не должно работать , вы установили входы в Z-состояние

Цитата

для того что-бы работало, подтяните каждый вход МК земле через приметив протеза PULLDOWN

Share this post


Link to post
Share on other sites
6 часов назад, IMXO сказал:

для того что-бы работало, подтяните каждый вход МК земле через приметив протеза PULLDOWN

Правильно, но нелогично.

Логичнее делать так, как делают в реальности: активировать встроенную "подтяжку" порта к питанию внутри МК, а кнопки сделать "на общий", то есть реагированить в программе не на появление 1 на пине, а на появление 0.

И еще вопрос: что за извращение с указателем?! В данном примере проще и понятнее использовать обычное обращение к массиву

Цитата

            PORTB=conversion(count);   

            PORTB = mas[count];

 

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

57 минут назад, ARV сказал:

Правильно, но нелогично.

 может у ТСа требования именно к управлению по плюсу, вы же этого не знаете и я тоже .да не логично, поэтому исходим из кода программы и предоставленных картинок. 

Share this post


Link to post
Share on other sites
13.09.2019 в 10:08, ARV сказал:

Правильно, но нелогично.

Логичнее делать так, как делают в реальности: активировать встроенную "подтяжку" порта к питанию внутри МК, а кнопки сделать "на общий", то есть реагированить в программе не на появление 1 на пине, а на появление 0.

И еще вопрос: что за извращение с указателем?! В данном примере проще и понятнее использовать обычное обращение к массиву

 

здравствуй, насчет извращения с указателем, разбираюсь с работой меток и указателей и тыкаю их куда попало, а насчет выводов предлагаете 

DDRD=0x00;

PORTD=0xFF;

требований никаких нет.

Без имени.png

13.09.2019 в 11:15, IMXO сказал:

 может у ТСа требования именно к управлению по плюсу, вы же этого не знаете и я тоже .да не логично, поэтому исходим из кода программы и предоставленных картинок. 

по DDRD=0x00, portd=0x00, portd=0xff, почитал вроде ясно спасиба. мой косяк.

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Прекрасные приборы, в умелых руках! Главное, иметь грамотную, и сообразительную голову и практический опыт приобретённый на протяжении всей жизни. Все эти качества  у Вас есть! Так держать!  
    • заменил резисторы - ничего не поменялось - я так понимаю - как говорили - с каждым импульсом трансформатор будет набирать *обороты* и потому на выходе такой график? поправьте меня ес не прав - а то чуть су включать в сеть))
    • Градус пива или чего покрепче?  Это к наркологу...    А, просто, воспользоваться переводчиком религия не позволяет? 
    • @Pont 007 Пользуясь правом, данным мне в этой теме Админом, за необоснованные снижение моего рейтинга, объявляю тебя мелким, гнилым и мстительным полупи_ором. Ты не мужик, а дешёвка и срань болотная.
    • навесил по 1 кОм на вторичку - хде мой софтстарт попробую все-таки увеличить затворные резисторы ,имхо ,снабер на вторичку в любом случае нужен,имхо VID_20191020_234156.mp4
    • Человек-паук:
    • В одном аэропорту на скамье ожидания сидят трое: — Француз, американец и русский. Вдруг к ним подходит журналист и спрашивает:  — Не могли бы вы какими то другими словами объяснить что у вас висит ниже пояса?  Сначала ответил Француз: - Ниже пояса у меня висит то, чем я обычно доставляю удовольствие женщинам.  Потом ответил Американец: — Ниже пояса у меня висит то, чем я доставляю удовольствие себе.  И наконец ответил Русский: — Ниже пояса у меня висят ключи, а то что у тех двоих висит, у меня обычно стоит! ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - Чем лучше запивать блюда мексиканской кухни? - Текилой. - А блюда немецкой кухни? - Пивом. - А блюда итальянской кухни? - Вином. - А русскую кухню? - А русскую кухню не запивать надо, а закусывать! ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Полицейский Инспектор Дорожного Регулирования (ПИДР),  Государственная Единая Инспекция (ГЕИ), а ведь все начиналось с обычных голубых номеров. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Беседуют американец с русским: А: А у нас в Америке самое опасное животное - это медведь гризли. Особенно если голодный. А у вас? Небось тоже медведь?  Р: Неа! У нас в России самое опасное животное - это песец. Особенно если полный! 
  • Покупай!

×
×
  • Create New...