Wzorując się ma mechaniźmie działania programu P. Mirka z poradnika "WIFI - CLIENT - WWW/PHP" spróbowałem zrobić podobne narzędzie współpracujące bazą danych i skryptem php na mojej stronie sucyn.c0.pl oraz (w późniejszym czasie) aplikacją na androida, której temat poruszałem niedawno na tym forum
Problemem stało się napisanie programu na at32, która ma za zadanie:
1)wysłać zapytanie na moją stronę internetową przesyłając w adresie url odpowiednią zmienną do poprawnej reakcji skryptu php
2)ze strumienia danych zwrotnych ze strony ma wyszukać pierwszy znacznik "#", następnie kolejne znaki wpisać do tablicy znaków aż do momentu trafienia na drugi znacznik "#"
3) utworzoną w ten sposób tablicę znaków ma porównać z inna ustaloną w programie tablicą
4)jeśli porównanie nie zwróci wartości "NULL" to program wysyła na stronę kolejną zmienną która zastępuje wyszukiwaną dotychczas w bazie danych
Oto kod dla at32:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
A tu kod skryptu na serwerze:
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W bibliotece MK_USART zmieniłem wielkość bufora nadawczego i odbiorczego na 100 oraz ze względu na zastosowany kwarc 16MHz szybkość UART'a na 38400. Moduł WIFI skonfigurowany chyba dobrze bo prawidłowo wysyła zapytania do serwera-sprawdzone.
Problemem jest pierwsza pętla wyszukująca pierwszy znacznik "#" ponieważ nigdy się nie kończy tak jak by nie znajdowała tego znacznika.
Proszę o pomoc w znalezieniu przyczyny tego problemu bo wydaje mi się że nie rozumiem do końca zasady działania funkcji "uart_getc()" i pewnie tu coś pomieszałem....