From 25068d6ae171887036692f98dd520d213214ac1e Mon Sep 17 00:00:00 2001 From: Yohan Boujon Date: Tue, 5 Apr 2022 20:42:36 +0200 Subject: [PATCH] Additions from 25/03/2022: Sending back the comparison between led adc, fixing initialization of values, recasting to `int` instead of `uchar`. --- .../i2c_test_attiny85.componentinfo.xml | 14 ++--- i2c_test_attiny85/i2c_test_attiny85.cproj | 14 ++--- i2c_test_attiny85/led_receptor.c | 59 +++++++++---------- i2c_test_attiny85/led_receptor.h | 5 +- i2c_test_attiny85/main.c | 23 +++++--- 5 files changed, 60 insertions(+), 55 deletions(-) diff --git a/i2c_test_attiny85/i2c_test_attiny85.componentinfo.xml b/i2c_test_attiny85/i2c_test_attiny85.componentinfo.xml index f38ac81..af0bdfe 100755 --- a/i2c_test_attiny85/i2c_test_attiny85.componentinfo.xml +++ b/i2c_test_attiny85/i2c_test_attiny85.componentinfo.xml @@ -10,12 +10,12 @@ Atmel 1.8.0 - D:/Programs\Atmelstudio\7.0\Packs + C:/Program Files (x86)\Atmel\Studio\7.0\Packs - D:/Programs\Atmelstudio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\include\ + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\include\ include C @@ -26,7 +26,7 @@ - D:/Programs\Atmelstudio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\include\avr\iotn85.h + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\include\avr\iotn85.h header C @@ -37,7 +37,7 @@ - D:/Programs\Atmelstudio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\templates\main.c + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\templates\main.c template source C Exe @@ -48,7 +48,7 @@ - D:/Programs\Atmelstudio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\templates\main.cpp + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\templates\main.cpp template source C Exe @@ -59,7 +59,7 @@ - D:/Programs\Atmelstudio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\gcc\dev\attiny85 + C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATtiny_DFP\1.8.332\gcc\dev\attiny85 libraryPrefix GCC @@ -71,7 +71,7 @@ ATtiny_DFP - D:/Programs/Atmelstudio/7.0/Packs/atmel/ATtiny_DFP/1.8.332/Atmel.ATtiny_DFP.pdsc + C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATtiny_DFP/1.8.332/Atmel.ATtiny_DFP.pdsc 1.8.332 true ATtiny85 diff --git a/i2c_test_attiny85/i2c_test_attiny85.cproj b/i2c_test_attiny85/i2c_test_attiny85.cproj index 759dbf0..ccd39cd 100755 --- a/i2c_test_attiny85/i2c_test_attiny85.cproj +++ b/i2c_test_attiny85/i2c_test_attiny85.cproj @@ -34,7 +34,7 @@ - + @@ -72,7 +72,7 @@ - -mmcu=attiny85 -B "%24(PackRepoDir)\atmel\ATtiny_DFP\1.8.332\gcc\dev\attiny85" + -mmcu=attiny85 -B "%24(PackRepoDir)\atmel\ATtiny_DFP\1.2.118\gcc\dev\attiny85" True True True @@ -87,7 +87,7 @@ - %24(PackRepoDir)\atmel\ATtiny_DFP\1.8.332\include\ + %24(PackRepoDir)\atmel\ATtiny_DFP\1.2.118\include Optimize for size (-Os) @@ -101,7 +101,7 @@ - %24(PackRepoDir)\atmel\ATtiny_DFP\1.8.332\include\ + %24(PackRepoDir)\atmel\ATtiny_DFP\1.2.118\include @@ -110,7 +110,7 @@ - -mmcu=attiny85 -B "%24(PackRepoDir)\atmel\ATtiny_DFP\1.8.332\gcc\dev\attiny85" + -mmcu=attiny85 -B "%24(PackRepoDir)\atmel\ATtiny_DFP\1.2.118\gcc\dev\attiny85" True True True @@ -125,7 +125,7 @@ - %24(PackRepoDir)\atmel\ATtiny_DFP\1.8.332\include\ + %24(PackRepoDir)\atmel\ATtiny_DFP\1.2.118\include Optimize (-O1) @@ -140,7 +140,7 @@ - %24(PackRepoDir)\atmel\ATtiny_DFP\1.8.332\include\ + %24(PackRepoDir)\atmel\ATtiny_DFP\1.2.118\include Default (-Wa,-g) diff --git a/i2c_test_attiny85/led_receptor.c b/i2c_test_attiny85/led_receptor.c index 097f10b..691486d 100755 --- a/i2c_test_attiny85/led_receptor.c +++ b/i2c_test_attiny85/led_receptor.c @@ -11,6 +11,9 @@ volatile unsigned char intr_count; volatile unsigned char timer_flag=0; volatile unsigned char seconde=0; +volatile unsigned char ledresult1=0; +volatile unsigned char ledresult2=0; + void ADC_init(void) { DDRB &=~(1< adcLed1 - { - return LEFT; - } - else if (adcCompare > VOLTMIN) - { - return RIGHT; - } - else - { - if((adcLed1 > VOLTMIN) && (adcLed2 > VOLTMIN)) - { - return NOTHING; - } - else - { - return FRONT; - }; - }; + int adcCompare = led1 - led2; + if(adcCompare < 1) + { + if(led1 > 204) + { + return NOTHING; + } + else + { + return FRONT; + } + } + if (led1 > led2) // adcLed2 > adcLed1 + { + return LEFT; + } + else + { + return RIGHT; + } }; diff --git a/i2c_test_attiny85/led_receptor.h b/i2c_test_attiny85/led_receptor.h index 66dcb6d..e7a9be4 100755 --- a/i2c_test_attiny85/led_receptor.h +++ b/i2c_test_attiny85/led_receptor.h @@ -29,10 +29,13 @@ char ADC_read_value(void); float ADC_averaging(unsigned char val_ana); char measureLed1(void); char measureLed2(void); -unsigned char compareLed(float led1,float led2); +unsigned char compareLed(int led1,int led2); volatile unsigned char intr_count; volatile unsigned char timer_flag; volatile unsigned char seconde; +volatile unsigned char ledresult1; +volatile unsigned char ledresult2; + #endif /* LED_RECEPTOR_H_ */ \ No newline at end of file diff --git a/i2c_test_attiny85/main.c b/i2c_test_attiny85/main.c index 1e3cd07..1f933b1 100755 --- a/i2c_test_attiny85/main.c +++ b/i2c_test_attiny85/main.c @@ -24,23 +24,28 @@ unsigned char adcled1; unsigned char adcled2; -double moyLed1; -double moyLed2; +double moyLed1=0; +double moyLed2=0; int iMoy=0; +volatile unsigned char recVal1=0; +volatile unsigned char recVal2=0; volatile unsigned char recVal=0; ISR (ADC_vect){ adcled1=measureLed1(); adcled2=measureLed2(); - moyLed1+=(double)adcled1; - moyLed2+=(double)adcled2; + moyLed1=moyLed1 + adcled1; + moyLed2=moyLed2 + adcled2; iMoy++; - if(iMoy >= 100) + if(iMoy >= 2000) { moyLed1=moyLed1/iMoy; moyLed2=moyLed2/iMoy; - recVal=(unsigned char)moyLed1; - //recVal=compareLed(moyLed1,moyLed2); + recVal1=(int)moyLed1; + recVal2=(int)moyLed2; + recVal=compareLed(recVal1,recVal2); + moyLed1=0; + moyLed2=0; iMoy=0; } ADCSRA |= (1<