03.07.2012
ZL27ARM: detekcja kolorów za pomocą czujnika TCS3200
Jak widać zmienne: FreqBlue, FreqRed, FreqClear oraz FreqGreen zawierają dane dotyczące poszczególnych pomiarów dla różnych filtrów. Informacje te są 4-cyfrową liczbą. Po przekształceniu opisaną wcześniej metodą czterech cztero-cyfrowych ciągów danych na pojedyncze cyfry zapisane w kodzie ASCII (dla każdej cyfry w kodzie dziesiętnym dodajemy 0x30) dla każdego z pomiarów całość wyświetlona zostaje na wyświetlaczu alfanumerycznym OLED o organizacji 2×20:
//Wyswietlenie danych na OLED LCD_GoTo(6,0); LCD_WriteData(Clear0); LCD_WriteData(Clear1); LCD_WriteData(Clear2); LCD_WriteData(Clear3); LCD_GoTo(2,1); LCD_WriteData(R0); LCD_WriteData(R1); LCD_WriteData(R2); LCD_WriteData(R3); LCD_GoTo(9,1); LCD_WriteData(G0); LCD_WriteData(G1); LCD_WriteData(G2); LCD_WriteData(G3); LCD_GoTo(16,1); LCD_WriteData(G0); LCD_WriteData(B1); LCD_WriteData(B2); LCD_WriteData(B3);
Na koniec program sprawdza stan przycisku SW1 celem włączenia/wyłączenia podświetlenia LED znajdującego się na płytce KAmodCOLOR:
//Kontrola diody LED (podswietlenie) if (!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)&&tmp1>=5) { //Opuznienie dla przycisku for(i=0;i<10000;i++); //Ponowne spr. stanu SW1 if (!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)) { //Zmiana stanu LED if(stanLED) { LCD_WriteTextXY("OFF",16,0); //Wylaczenie LED GPIO_ResetBits(GPIOA, GPIO_Pin_7); stanLED=0; } else { LCD_WriteTextXY("ON ",16,0); //Wlaczenie LED GPIO_SetBits(GPIOA, GPIO_Pin_7); stanLED=1; } tmp1=0; } }