Показать сообщение отдельно
Непрочитано 09.01.2014, 16:13  
Fraktal
Временная регистрация
 
Регистрация: 21.02.2013
Сообщений: 87
Сказал спасибо: 70
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Fraktal на пути к лучшему
По умолчанию Re: Как программно отследить появление логического нуля на входе /Reset?

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 
0Pausa=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;isizeof(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_cifr0;++i) {count_cifr/=10;} 
    switch(
i)    
    {
        case 
1s7_i[0]=summa;break;
        case 
2s7_i[0]=summa%10;s7_i[1]=summa/10;break; 
        case 
3s7_i[0]=summa%10;summa/=10;s7_i[1]=summa%10;s7_i[2]=summa/10;break;
        case 
4s7_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;ni;++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);
                      
PORTD0XFB;
                      
PORTC s7_i[1];
                      
_delay_ms(5);}        
                
        case 
3:  while(1){
                         
PORTD =0XEF;
                      
PORTC s7_i[0];
                      
_delay_ms(5);
                      
PORTD0XFB;
                      
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);
                      
PORTD0XFB;
                      
PORTC s7_i[1];
                      
_delay_ms(5);
                      
PORTD=0XFD;
                      
PORTC s7_i[2];
                      
_delay_ms(5);
                      
PORTD=0XFE;
                      
PORTCs7_i[3];
                      
_delay_ms(5);    }}    
                                                                  
          } 
Fraktal вне форума