-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitattributes
95 lines (69 loc) · 2.18 KB
/
.gitattributes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
IAR EMBEDDED WORKBENCH
#include "io430.h"
#include "in430.h"
#define BLED BIT5
#define GLED BIT4
#define RLED BIT3
unsigned int ADC_Result;
unsigned int Temperature;
unsigned char tR=0,tG=0,tB=0;
void adc_init(void)
{
ADC10CTL0 &= ~ENC;
ADC10CTL0 = ADC10SHT_3 + ADC10ON + ADC10IE ;
ADC10CTL1 = INCH_0 + ADC10SSEL_3 + ADC10DIV_3;
}
void RGB_LED(unsigned char tR,unsigned char tG, unsigned char tB){
unsigned char a;
unsigned int i;
for(a=0;a<25;a++){
for(i=1;i<=255;i++){ // 255 adimda 3 ayri PWM isaret uret
if(i>tR)P2OUT|=RLED;
if(i<=tR)P2OUT&= ~RLED;
if(i>tG)P2OUT|=GLED;
if(i<=tG)P2OUT&= ~GLED;
if(i>tB)P2OUT|=BLED;
if(i<=tB)P2OUT&= ~BLED;
__delay_cycles(1);
}}}
void colour_table(void){
if(Temperature<20){tR=0; tG=0; tB=255;}
if(Temperature>=20 && Temperature<21){tR=0; tG=0; tB=255;} // mavi
if(Temperature>=21 && Temperature<22){tR=0; tG=255; tB=0;}
if(Temperature>=22 && Temperature<23){tR=0; tG=255; tB=0;} // yesil
if(Temperature>=23 && Temperature<24){tR=0; tG=255; tB=0;}
if(Temperature>=24 && Temperature<25){tR=0; tG=255; tB=0;}
if(Temperature>=25 && Temperature<26){tR=0; tG=255; tB=0;}
if(Temperature>=26 && Temperature<27){tR=255; tG=0; tB=0;} // kirmizi
if(Temperature>=27 && Temperature<28){tR=255; tG=0; tB=0;}
if(Temperature>=28 && Temperature<29){tR=255; tG=0; tB=0;}
if(Temperature>=29 && Temperature<30){tR=255; tG=0; tB=0;}
if(Temperature>=30 && Temperature<31){tR=255; tG=0; tB=0;}
if(Temperature>30){tR=255; tG=0; tB=0;}
}
int main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
DCOCTL=CALDCO_1MHZ;
BCSCTL1=CALBC1_1MHZ;
P1SEL = 0x00;
P1OUT = 0x00;
P1DIR = 0x00;
P2DIR = BIT3|BIT4|BIT5;
P2OUT = 0x00;
adc_init();
ADC10CTL0 |= ADC10SC + ENC;
_BIS_SR(GIE);
for(;;);
}
#pragma vector=ADC10_VECTOR
__interrupt void ADC_ISR(void)
{
ADC_Result = ADC10MEM;
Temperature = (ADC_Result * 0.33); // MSP430 referans gerilimi 3.3 olarak ayarlandi bu yüzden (2.5/1024)/0.01mV islemini yaptigimizda olusan sonuç budur.
ADC10CTL0_bit.ADC10IFG = 0;
ADC10CTL0 |= ADC10SC + ENC;
_BIC_SR(GIE); // GIE bayragi kapatiliyor
colour_table();
RGB_LED( tR, tG, tB);
}