Change Slave sends '0' during convert prozess on all DS18B20
[owSlave2.git] / DS2450 / DS2450.c
index 4ca471f..3567ab2 100644 (file)
@@ -40,6 +40,7 @@
 #include <avr/pgmspace.h>
 
 extern void OWINIT();
+extern void EXTERN_SLEEP();
 
 uint8_t owid[8]={0x20, 0xA2, 0xD9, 0x84, 0x00, 0x16, 0x02, 0x5D};/**/
 uint8_t config_info[16]={0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x09,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
@@ -129,18 +130,21 @@ int main(void){
        MCUCR &=~(1<<PUD); //All Pins Pullup...
        MCUCR |=(1<<BODS);
        PORTA&=~((1<<PINA0)|(1<<PINA1)|(1<<PINA2)|(1<<PINA3));
-       ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
+       ADCSRA=(1<<ADEN)|(1<ADPS0)|(1<<ADPS2);
 
        
        
        gcontrol=1;
        ADCSRB|=(1<<ADLAR); 
        sei();
+       
+       //DDRB|=(1<<PINB1);
 
     while(1)   {
 
 
                if (gcontrol) {
+                       //PORTB|=(1<<PINB1);
                        uint8_t bb=1;
                        uint8_t bb1=1;
                        for(uint8_t i=0;i<4;i++){
@@ -155,7 +159,7 @@ int main(void){
                        //CHanel A
                        if (pack.convc1&1) {
                                if (pack.CSA2&0x01)     ADMUX=0; else ADMUX=0x80;
-                               _delay_ms(10);
+                               _delay_us(100);
                                ADCSRA|=(1<<ADSC);
                                while ((ADCSRA&(1<<ADSC)));
                                cli();pack.A=ADC;sei();
@@ -168,7 +172,7 @@ int main(void){
 
                        if (pack.convc1&2) {
                                if (pack.CSB2&0x01)     ADMUX=1; else ADMUX=0x81;
-                               _delay_ms(10);
+                               _delay_us(100);
                                ADCSRA|=(1<<ADSC);
                                while ((ADCSRA&(1<<ADSC)));
                                cli();pack.B=ADC;sei();
@@ -180,7 +184,7 @@ int main(void){
 
                        if (pack.convc1&4) {
                                if (pack.CSC2&0x01)     ADMUX=2; else ADMUX=0x82;
-                               _delay_ms(10);
+                               _delay_us(100);
                                ADCSRA|=(1<<ADSC);
                                while ((ADCSRA&(1<<ADSC)));
                                cli();pack.C=ADC;sei();
@@ -191,7 +195,7 @@ int main(void){
                        } 
                        if (pack.convc1&8) {
                                if (pack.CSD2&0x01)     ADMUX=3; else ADMUX=0x83;
-                               _delay_ms(10);
+                               _delay_us(100);
                                ADCSRA|=(1<<ADSC);
                                while ((ADCSRA&(1<<ADSC)));
                                cli();pack.D=ADC;sei();
@@ -201,7 +205,8 @@ int main(void){
                                        if (pack.bytes[1]<pack.LD) {alarmflag=1;pack.CSD2|=0x10;}
                        }
                        
-                       gcontrol=0;
+                       EXTERN_SLEEP();
+                       //PORTB&=~(1<<PINB1);
                }
 
                uint8_t bb=1;