Никак не могу понять как это возможно. Когда подаю питание , программа попадает в этот цыкл и не выходит из него. В чем может быть проблема ? (есть еще на плате 1kOM Pull-Up резистор на +5V , и проверяю тестером тот же пин и на него стоит 1)
какая разница что в цикле true ? условие PINC.0 == 0 а проверяю тестером в нем сидит 1 ,, оно не должно войти в этот цикл пока не 0
из цикла не выйдешь, пока условие выполнения цикла true. Вопрос как звучал? Если хочешь получить ожидаемый ответ, научись правильно задавать вопросы.
Там тебе где видно что условие true , если написано PINC.prp == 0 (a prp у меня равно 2), а перед этим строки DDRC = 0b00000000; PORTC = 0b11111100;
По-моему у вас для PINC.0 (PINC.prp ?) и PINC.1 не включены резисторы подтяжки PORTC=0b11111100; У Кодевижна копи/пасте не работает?
Код (C++): #include <mega16.h> #include <delay.h> #define prp 2 #define pluse 1 #define minuse 2 unsigned int current_prp; void main(void) { //----------------------------------------------------------------------------------------------------------------------- //PORTS Configuration DDRA = 0b00001000; PORTA = 0b00000000; DDRD = 0b11111000; PORTD = 0b11111111; DDRB = 0b11110000; PORTB = 0b00001111; DDRC = 0b00000000; PORTC = 0b11111100; while(1){ while(PINC.prp == 0){ if(PIND.pluse == 0){ current_prp++; delay_ms(250); if(current_prp >= 10000){ current_prp = 0; }; }; if(PIND.minuse == 0){ current_prp--; delay_ms(250); if(current_prp <= 0){ current_prp = 9999; }; }; }; } }
а здесь чо, не написать??? Стопудово уверен, что это кодавижен фуфло гонит. Чем он так приглядыввается? Ведь есть нормальные профессиональные иде.
Поговаривают, что IAR очень хорош в плане оптимизации кода. Но как он в плане юзабилити - не пробовал.