ZL27ARM: współpraca z odbiornikiem GPS z modułu KAmodGPS
Po wywołaniu funkcja czeka na kolejny znak i po odebraniu zwraca go w celu przetworzenia w dalszej części programu:
while( ( temp[0] = getch() ) != '$'); //Jeśli pierwszy znak '$' to
for(i = 0; i < 5 ; i++)
temp[i] = getch(); //Odczytaj kolejnych 5 znaków
if(strncmp(temp, GPGGA, 5) ) //sprawdź czy komenda GPGGA
{
for(i = 0; i < 14 ; i++) //Jeśli tak - pomiń godzinę i zbędne dla nas informacje
temp[0] = getch();
for(i = 0; i < 11; i++)
N[i] = getch(); //Zapisz do N[] szerokosc geograficzną
N[i+1] = '\0';
temp[0] = getch(); //Pomin ","
for(i = 0; i < 12; i++)
E[i] = getch(); //Zapisz do E[] dlugosc geograficzna
E[i+1] = '\0';
//Jesli szerokosc geograficzna prawidlowo odczytana
//Jesli jestesmy nad rownikiem to mamy szerokosc polnocna(N)
//Ponizej rownika jest szerokosc poludniowa (S)
if(N[10] == 'N'||N[10]=='S')
{
//Zamien format N[] z DM na DMS i przygotuj N[] do wyswietlenia
PrzeliczN();
LCD_Clear();
LCD_GoTo(0,1);
LCD_SendText((u8*)N); //Wyswietl N[];
}
LCD_GoTo(1,2); //W drugiej lini
//Jesli dlugosc geograficzna odczytana poprawnie
//Na wschod od poludnika Greenwich jest dlugosc wschodnia(E)
//Na zachod od poludnika Greenwich jest dlugosc zachodnia(W)
if(E[11] == 'E'||E[11] == 'W')
LCD_SendText((u8*)E); //Wyswietl E[]
}
//Malo wydajna funkcja :)-Zmiana stringa N[] na float, wykonanuje mnozenie minut szerokosci geograficznej systemu DM przez 0.6 aby otrzymac
//DMS i z powrotem zamienia float na string juz w formacie DMS
//Ponizsza funkcja ma za zadanie zmienic format DM na DMS oraz ladnie sformatowac wynik do wyswietlenia.
void PrzeliczN(void)
{
for(i=2;i<4;i++)
Nm[i-2]=N[i]; //Odczytaj wartosc minut i zapisz do Nm[]
Nm[2]=0x27;
for(i=5;i<9;i++)
Ns[i-5]=N[i]; //Odczytaj wartosc sekund i zapisz do Ns[]
N[2]=0xDF;
for (i=0;i<3;i++)
N[i+3]=Nm[i];
//Zamien stringa na float i pomnoz * 6
//"-48" poniewaz zamieniamy z char-a na cyfre
fLiczba=(((Ns[0]-48)*1000)+((Ns[1]-48)*100)+((Ns[2]-48)*10)+(Ns[3]-48))*6;
//Z powrotem zmiana float na string
//oraz sformatowanie N[] do postaci jaka ma byc wyswietlona
N[6]=(char) floor(fLiczba/10000)+48;
fLiczba-=(N[6]-48)*10000;
N[7]=(char) floor(fLiczba/1000)+48;
fLiczba-=(N[7]-48)*1000;
N[8]='.';
N[9]=(char) floor(fLiczba/100)+48;
fLiczba-=(N[9]-48)*100;
N[10]=(char) floor(fLiczba/10)+48;
fLiczba-=(N[10]-48)*10;
N[11]=(char)floor(fLiczba)+48;
N[12]=0x22;
N[13]='N';
N[14]='\0'; //Znacznik konca tekstu
}

Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć
Fotorezystor, czyli czujnik światła dwojakiego działania. Przykład innowacji w automatyce i elektronice możliwej dzięki technologii fotooporników 



