я вот учусь программированию, и наткнулся на такую ошибку, по идеи работать должен так, када нажимаю кнопку и значение увеличивается на к++, и должен после каждой нажатий вывести на экран, точнее на терминал, работает через rs232. Почему када нажимаю увеличивается тока на 1 и дальше не идет, и глобально объявлял к, но все же, такой ответ выходит
- Код: Выделить всё
- /*****************************************************
 This program was produced by the
 CodeWizardAVR V2.04.8b Evaluation
 Automatic Program Generator
 © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
 http://www.hpinfotech.com
 Chip type : ATmega32
 Program type : Application
 AVR Core Clock frequency: 8,000000 MHz
 Memory model : Small
 External RAM size : 0
 Data Stack size : 512
 *****************************************************/
 #include <mega32.h>
 #include <delay.h>
 // Standard Input/Output functions
 #include <stdio.h>
 // Declare your global variables here
 void main(void)
 {
 // Declare your local variables here
 // Input/Output Ports initialization
 // Port A initialization
 // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
 // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
 PORTA=0xFF;
 DDRA=0;
 // Port B initialization
 // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
 // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
 PORTB=0x00;
 DDRB=0xFF;
 // Port C initialization
 // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
 // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
 PORTC=0x00;
 DDRC=0xFF;
 // Port D initialization
 // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
 // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
 PORTD=0xFF;
 DDRD=0;
 // Timer/Counter 0 initialization
 // Clock source: System Clock
 // Clock value: Timer 0 Stopped
 // Mode: Normal top=FFh
 // OC0 output: Disconnected
 TCCR0=0x00;
 TCNT0=0x00;
 OCR0=0x00;
 // Timer/Counter 1 initialization
 // Clock source: System Clock
 // Clock value: Timer1 Stopped
 // Mode: Normal top=FFFFh
 // OC1A output: Discon.
 // OC1B output: Discon.
 // Noise Canceler: Off
 // Input Capture on Falling Edge
 // Timer1 Overflow Interrupt: Off
 // Input Capture Interrupt: Off
 // Compare A Match Interrupt: Off
 // Compare B Match Interrupt: Off
 TCCR1A=0x00;
 TCCR1B=0x00;
 TCNT1H=0x00;
 TCNT1L=0x00;
 ICR1H=0x00;
 ICR1L=0x00;
 OCR1AH=0x00;
 OCR1AL=0x00;
 OCR1BH=0x00;
 OCR1BL=0x00;
 // Timer/Counter 2 initialization
 // Clock source: System Clock
 // Clock value: Timer2 Stopped
 // Mode: Normal top=FFh
 // OC2 output: Disconnected
 ASSR=0x00;
 TCCR2=0x00;
 TCNT2=0x00;
 OCR2=0x00;
 // External Interrupt(s) initialization
 // INT0: Off
 // INT1: Off
 // INT2: Off
 MCUCR=0x00;
 MCUCSR=0x00;
 // Timer(s)/Counter(s) Interrupt(s) initialization
 TIMSK=0x00;
 // Analog Comparator initialization
 // Analog Comparator: Off
 // Analog Comparator Input Capture by Timer/Counter 1: Off
 ACSR=0x80;
 SFIOR=0x00;
 // USART initialization
 // Communication Parameters: 8 Data, 1 Stop, No Parity
 // USART Receiver: On
 // USART Transmitter: On
 // USART Mode: Asynchronous
 // USART Baud Rate: 9600
 UCSRA=0x00;
 UCSRB=0x18;
 UCSRC=0x86;
 UBRRH=0x00;
 UBRRL=0x33;
 while (1){
 int k;
 k = 20;
 switch(PIND){
 case 0b11111011:
 delay_ms(200);
 k++;
 printf("%d \r\n\0", k);
 break;
 case 0b11110111:
 delay_ms(200);
 k--;
 printf("%d \r\n\0", k);
 break;
 default: break;
 }
 }
 }





 извините))) я прост пишу как говорю)
 извините))) я прост пишу как говорю)