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); } // что закрывает этот блок - не известно. }
|