Отговори на тема  [ 48 мнения ]  Отиди на страница Предишна  1, 2, 3, 4  Следваща
Моля за малко помощ 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: Моля за малко помощ
Супер.
Сега може да направиш следната проверка за натинат бутон
Код:
...
    while (1)
    {
        if (b1 == 0)
        {
            delay_ms(10);
            if (b1 == 0)
            {
                r1 = 1;
                delay_ms(1000);
                r1 = 0;
            }
        }
    }
...

С нея ще направиш проверка дали е натиснат бутона. Ще изчакаш 10-тина милисекунди, ще направиш повторна проверка дали е натиснат и ако е - светваш светодиода за 1 секунда и после го угасяш.


Съб Юни 14, 2014 10:13 pm
Профил
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Вто Окт 09, 2007 11:06 pm
Мнения: 74
Местоположение: Търговище
Мнение Re: Моля за малко помощ
Компилирах кода,който ми изпрати и какво се получава на практика.Диода свети,като премигва за много кратко явно е за 10 милисекунди и,като натисна бутона изгасва докато е натиснат бутона в момента в,който пусна бутона продължава сбезкраен цикъл свети и премигва за 10 милисекунди.


Съб Юни 14, 2014 10:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: Моля за малко помощ
Ами избрал си кофти извод за бутона - той е и ресет-а на контролера. За да може да го ползваш като вход, то е нужно в конфигурацията да укажеш че няма да ползваш РЕСЕТ.
Код:
#fuses .... NOMCLR ...

И махни MCLR ако си го сложил..
Ако пак не стане, пусни целия код отново (подреден и в код таг :) )


Съб Юни 14, 2014 10:38 pm
Профил
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Вто Окт 09, 2007 11:06 pm
Мнения: 74
Местоположение: Търговище
Мнение Re: Моля за малко помощ
Ей Браво колега след като забраних и MCLR диода светна по твоята програма.


Съб Юни 14, 2014 10:44 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Моля за малко помощ
Това с резета въобще не му обърнах внимание...

Може да си преместиш бутона на GP2 - входа му е шмидт тригер, можеш да му включиш вътрешния пулъп и с кондензаторче на бутона няма да ти трябва проверката от 10 мс. Ще работи 99% гарантирано без нужда от дебоунс.


Нед Юни 15, 2014 9:25 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Вто Окт 09, 2007 11:06 pm
Мнения: 74
Местоположение: Търговище
Мнение Re: Моля за малко помощ
Може ли да ми кажете как ще се направи,натискам бутона светва диода,след определен период,когато реша натискам бутона изгасва диода?Защо,когато изключа и включа захранването прави каквото си иска?


Пон Юни 16, 2014 8:30 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: Моля за малко помощ
Дефинирай си някой променлива и си запиши в нея текущя статус на светодиода.. Абе варианти колкото щеш.
Ето ти един вариант наготово
Код:
void main(void) {
    byte state = 0;
   
    CMCON = (1<<0) | (1<<1) | (1<<2);
    set_tris_a(1<<3);

    r1 = 1;
   
    while (1)
    {
        if (b1 == 0)
        {
            delay_ms(10);
            if (b1 == 0)
            {
                state ^= 1;

                if (state == 1)
                {
                    r1 = 1;
                }
                else
                {
                    r1 = 0;
                }
            }
        }
    }
}


А относно другият ти проблем - може би някой друго закъснение преди основния цикъл да реши проблема.. Разгледай спецификацията за POR (power on reset) функционалност и ако има такава - поиграй си с нея.


Пон Юни 16, 2014 9:48 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: Моля за малко помощ
При подаване на захранването всеки един извод на порта може да е в произволно състояние. За да не "прави каквото си иска" трябва да се зададе състояние на порта или на конкретен извод преди да се конфигурират TRIS и CMCON регистрите.


Вто Юни 17, 2014 4:32 pm
Профил
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Вто Окт 09, 2007 11:06 pm
Мнения: 74
Местоположение: Търговище
Мнение Re: Моля за малко помощ
Здравейте може ли някой да ми помогне ? Искам на PIC12f675 GP0 да е винаги изход ,когато имам на GP3=1 и GP2=1, или казано с други думи два входа 1 изход.Но да не работи примерно при GP3=1 и GP2=0 или обратното.


Пон Юни 23, 2014 10:41 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение Re: Моля за малко помощ
Какво разбираш под " не работи"?? да не е вход, да е в ниско ниво, какво ли?


Вто Юни 24, 2014 11:41 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Вто Окт 09, 2007 11:06 pm
Мнения: 74
Местоположение: Търговище
Мнение Re: Моля за малко помощ
Нека да бъда точен,когато имам две еденици на входа на изхода също да имам 1.Когато имам 0 на единият от двата входа на изхода също да е 0.


Вто Юни 24, 2014 12:56 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: Моля за малко помощ
vladivvs написа:
Нека да бъда точен,когато имам две еденици на входа на изхода също да имам 1.Когато имам 0 на единият от двата входа на изхода също да е 0.

За двувходов елемент "И", трябва ли цял процесор?


Вто Юни 24, 2014 2:51 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: Моля за малко помощ
естествено, дори не знам с то пик къде е тръгнал, то няма да стигне ресурс, къде ще качиш линукс-а ... това си иска здрав арм.


Вто Юни 24, 2014 3:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 2:21 am
Мнения: 12765
Местоположение: София
Мнение Re: Моля за малко помощ
vladivvs написа:
Нека да бъда точен,когато имам две еденици на входа на изхода също да имам 1.Когато имам 0 на единият от двата входа на изхода също да е 0.

Тук има подходящ код за твоето приложение: http://en.wikipedia.org/wiki/Logic_gate


Вто Юни 24, 2014 5:32 pm
Профил
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Вто Окт 09, 2007 11:06 pm
Мнения: 74
Местоположение: Търговище
Мнение Re: Моля за малко помощ
И ако съм разбрал правилно с PIC не може да се направи така ли?


Вто Юни 24, 2014 7:44 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 48 мнения ]  Отиди на страница Предишна  1, 2, 3, 4  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни