РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

Форум на ЭЛВО


РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ



  • Страница 1 из 1
  • 1
Архив - только для чтения
Программа для PIC (нажатие кнопки)
Сообщение # 1        
kolya2014ponomarev
аватар
  Постов: 1   ОК 
Здравствуйте, недавно начал заниматься программированием платы PIC16F877. Написал программу по выбору одной из двух кнопок, одна - включает светодиод, другая - звук, но к сожалению, данная программа не работает(программа компилируется, но после загрузки ни одна из кнопок не работает). Один из портов (PORTB.F0) при этом аналоговый и не знаю как перевести его в цифровой. Плата pic16f877.
Помогите пожалуйста с решением данной проблемы.
Вот сама программа:

void main()
{
TRISB=0x00;
TRISB.F0=1;
TRISA.F4=1;
TRISB.F3=0;
Sound_Init(&PORTC,0);
while(1)
{
for(;;)
if(!PORTA.F4)
PORTB.F3=1;
}
{
for(;;)
if (!PORTB.F0)
sound_play(10,10);
}
}
Сообщение # 2        
Витинари
аватар
  Постов: 1503   Друзья 
kolya2014ponomarev, так как не указано, какой именно вариант языка Си использовался, прокомментировал основные ошибки.

Во-первых, направление портов указано только для порта B (и то, все - выходы). Порт F просто не знает, что на нем должна быть кнопка (она указывается как вход, т.е. состояние соответствующего бита на TRISA должно быть равно 1). Во-вторых, знаете ли, что значит "TRISB=0x00" и ей подобные команды, и знаете ли, вообще, как расшифровывается "0x00"?
В-третьих:

void main()
{

TRISB=0x00;
TRISB.F0=1;
TRISA.F4=1;
TRISB.F3=0;
Sound_Init(&PORTC,0);
while(1) // бесконечный цикл, здесь все правильно
{ // начало блока цикла
for(;;) // а тут цикл в цикле! здесь программа наглухо виснет
if(!PORTA.F4) // PORTA не знает, что на нем есть входы
PORTB.F3=1;
} // внезапно заканчивается блок цикла while
{ // неизвестно откуда взявшаяся фигурная скобка
for(;;) // еще один цикл в цикле. Но программа уже висит на предыдущем
if (!PORTB.F0) // а PORTB знает, что на нем только выходы
sound_play(10,10);
} // что закрывает этот блок - не известно.
}
  • Страница 1 из 1
  • 1
Поиск:

Внимание! Форум переехал на Tehnodium.ru



© 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA