Міністерство освіти і науки України
Національний університет «Львівська Політехніка»
Лабораторна робота №4
з дисципліни «Програмування апаратних засобів»
Розробка проектів у середовищі PSoC® Creator™ з використанням масивів даних в коді програми
Прийняв:
Мащак А.В.
Львів 2018
У даній лабораторній роботі поставлена задача запалювати світлодіод з різною інтенсивністю. Витягнули для світлодіодів і під’єднали до синього, зеленого та червоного кольорів світлодіода.
Згідно постановки задачі для мого варіанту потрібно було ,щоб синій світло діод загорявся логарифмічним методом методом, і загасав червоним світло діодом логарифмічним методом.
1.Внутрішня апаратна частина складається з двох світло діодів які підєднані до плати.
1.Розробка програмної частини. Модифікувати і відлагодити код програми main.c таким чином, щоб інтенсивність світіння діода згідно заданого варіанту з використанням масивів даних.
#include <project.h>
void Init(void);
uint8 ValuesLоg [256] =
{
0,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,96,97,98,99,100,101,102,103,104,105,106,107,108,
109,110,111,112,113,114,115,116,117,118,119,120,121,122,
123,124,125,126,127,128,129,130,131,132,133,134,135,136,
137,138,139,140,141,142,143,144,145,146,147,148,149,150,
151,152,153,54,155,156,157,158,159,160,161,162,163,164,
165,166,167,168,169,170,171,172,173,174,175,176,177,178,
179,180,181,182,183,184,185,186,187,188,189,190,191,192,
193,194,195,196,197,198,199,200,201,202,203,204,205,206,
207,208,209,210,211,212,213,214,215,216,217,218,219,220,
221,222,223,224,225,226,227,228,229,230,231,232,233,234,
235,236,237,238,239,240,241,242,243,244,245,246,247,248,
249,250,251,252,253,254,255
};
uint8 ValuesLog [256] =
{
0,0,0,1,1,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,12,
12,13,13,14,14,15,16,16,17,17,18,18,19,20,20,21,21,
22,23,23,24,24,25,26,26,27,28,28,29,30,30,31,31,32,
33,33,34,35,35,36,37,37,38,39,40,40,41,42,42,43,44,
44,45,46,47,47,48,49,50,50,51,52,53,53,54,55,56,56,
57,58,59,60,60,61,62,63,64,64,65,66,67,68,69,69,70,
71,72,73,74,75,75,76,77,78,79,80,81,82,83,84,84,85,
86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,
102,103,104,105,106,107,108,109,110,111,112,113,114,
115,116,117,119,120,121,122,123,124,125,126,127,129,
130,131,132,133,134,135,137,138,139,140,141,143,144,
145,146,148,149,150,151,152,154,155,156,158,159,160,
161,163,164,165,167,168,169,171,172,173,175,176,178,
179,180,182,183,185,186,187,189,190,192,193,195,196,
198,199,201,202,204,205,207,208,210,211,213,214,216,
218,219,221,222,224,226,227,229,231,232,234,236,237,
239,241,242,244,246,247,249,251,253,255
};
int main()
{
int i;
Init();
for(;;)
{
for (i = 0; i< 255; i++)
{
PWM_LED_1_WriteCompare(ValuesLog[l]);
CyDelay(10);
}
PWM_LED_1_WriteCompare(0);
for (i = 255; i>=0; i--)
{
PWM_LED_2_WriteCompare(ValuesLin[i]);
CyDelay(10);
}
}
while(l)
{
}
}
void Init(void)
{
PWM_LED_1_Start();
PWM_LED_2_Start();
Clock_Start();
PWM_LED_1_WriteCompare(0);
PWM_LED_2_WriteCompare(0);
}
Висновок: під час виконання лабораторної роботи я навчився запалювати світлодіод різними кольорами та різною інтенсивністю світіння. Після запуску проекту, світлодіод почав світитись починаючи слабенько і наростаючи до максимального потім змінювався колір.