ForcePoint, отлавливаю нажатие кнопки
PHP код:
|
/*
* KursStudi.c
*
* Created: 23.12.2013 23:13:58
* Author: Sirius
*/
#define F_CPU 1000000ul
#include ‹avr/io.h›
#include ‹avr/interrupt.h›
#include ‹avr/signal.h›
#include ‹util/delay.h›
#include ‹inttypes.h›
#include ‹stdlib.h›
uint8_t s7_i[4];
int i;
uint8_t Pausa = 0;
/*************************************/
ISR(INT2_vect)
{
cli();
_delay_ms(5);
switch(Pausa)
{
case 1: Pausa=0;PORTD=(~1‹‹PD0)|(~1‹‹PD1)|(~1‹‹PD2)|(~1‹‹PD4);PORTB&=~(1‹‹PB0); break;
case 0: Pausa=1;PORTD=((1‹‹PD0)|(1‹‹PD1)|(1‹‹PD2)|(1‹‹PD4));PORTB|=(1‹‹PB0);break;
}
main();
}
uint16_t massiv (void)
{
uint8_t min=255;
uint32_t sum=0;
uint8_t Array[700];
for (int i=0;i‹sizeof(Array);++i)
{Array[i]=255;
if ( min › Array[i]) min = Array[i];
sum +=Array[i]; }
return (sum/sizeof(Array))*3+min;}
void dec_bin ()
{
uint16_t summa = massiv();
uint16_t count_cifr = summa;
for ( i=0;count_cifr›0;++i) {count_cifr/=10;}
switch(i)
{
case 1: s7_i[0]=summa;break;
case 2: s7_i[0]=summa%10;s7_i[1]=summa/10;break;
case 3: s7_i[0]=summa%10;summa/=10;s7_i[1]=summa%10;s7_i[2]=summa/10;break;
case 4: s7_i[0]=summa%10;summa/=10;s7_i[1]=summa%10;summa/=10;s7_i[2]=summa%10;s7_i[3]=summa/=10;break;
}
for (uint8_t n=0;n‹i;++n)
{
switch(s7_i[n])
{
case 0:s7_i[n] = 0x3F;break;case 5:s7_i[n] = 0X6D;break;
case 1:s7_i[n] = 0X06;break;case 6:s7_i[n] = 0X7D;break;
case 2:s7_i[n] = 0X5B;break;case 7:s7_i[n] = 0X07;break;
case 3:s7_i[n] = 0X4F;break;case 8:s7_i[n] = 0X7F;break;
case 4:s7_i[n] = 0X66;break;case 9:s7_i[n] = 0X6F;break;
}
}
}
main ()
{
sei();
DDRB = 0xff;
GICR = (1‹‹INT2);
while(Pausa){MCUCSR= (1‹‹ISC2);}
MCUCSR = (0‹‹ISC2) ;
PORTB |= (1‹‹PB2);
DDRC = (1‹‹PC0)|(1‹‹PC1)|(1‹‹PC2)|(1‹‹PC3)|(1‹‹PC4)|(1‹‹PC5)|(1‹‹PC6)|(1‹‹PC7);
DDRD = (1‹‹PD0)|(1‹‹PD1)|(1‹‹PD2)|(1‹‹PD3)|(1‹‹PD4)|(1‹‹PD5)|(1‹‹PD6)|(1‹‹PD7);
DDRA = ~((1‹‹PA0)|(1‹‹PA1)|(1‹‹PA2)|(1‹‹PA3)|(1‹‹PA4)|(1‹‹PA5)|(1‹‹PA6)|(1‹‹PA7));
PORTA = (1‹‹PA0)|(1‹‹PA1)|(1‹‹PA2)|(1‹‹PA3)|(1‹‹PA4)|(1‹‹PA5)|(1‹‹PA6)|(1‹‹PA7);
dec_bin();
switch(i)
{
case 1:while(1){
PORTD =0XEF;
PORTC = s7_i[0];}
case 2: while(1){
PORTD =0XEF;
PORTC = s7_i[0];
_delay_ms(5);
PORTD= 0XFB;
PORTC = s7_i[1];
_delay_ms(5);}
case 3: while(1){
PORTD =0XEF;
PORTC = s7_i[0];
_delay_ms(5);
PORTD= 0XFB;
PORTC = s7_i[1];
_delay_ms(5);
PORTD=0XFD;
PORTC = s7_i[2];
_delay_ms(5);}
case 4: while(1){
PORTD =0XEF;
PORTC = s7_i[0];
_delay_ms(5);
PORTD= 0XFB;
PORTC = s7_i[1];
_delay_ms(5);
PORTD=0XFD;
PORTC = s7_i[2];
_delay_ms(5);
PORTD=0XFE;
PORTC= s7_i[3];
_delay_ms(5); }}
}
|