Well Done Andrzej! Chodziło właśnie o zmianę adresu miejsca na wyświetlaczu, od którego zacznie się "rysowanie" częstotliwości. Czyli zmianę wartosci zaznaczonej na czerwono ( prawie na samym końcu pliku nowy.c ):
LCD_PORT &= (~1<<LCD_RS);
bajt_lcd(
0x85);
wys_freq(frequency);
Na miejsce tej wartości powstawiajcie np. 0x83, 0x81, ... itd żeby zobaczyć co to zmienia.
Dobra, mamy "ładne" wyświetlanie częstotliwości teraz przydałoby sie sensowne wyświetlanie kroku - ja do tego wykorzystam pomysł z CB-radia LINCOLN w którym pod cyfrą jedności, dziesiątek, setek , itd ... ustawiany jest kursor. ( np. Jeśli kursor jest pod cyfrą reprezętującą dziesiątki Herców, oznacza to że krok wynośi 10 Hz. )
Wyświetlacz którym sie bawimy może wyświetlać kursor, może być nawet migający. Wykorzystam to, oto gotowiec :
nowy.zip (Rozmiar: 63.5 KB / Pobrań: 835)
Zwróćnie uwagę ile miejsca zyskaliśmy na wyświetlaczu - można w miejsce wyświetlania kroku wsadzić np. drugą częstotliwość.
Pobawcie się tez opóźnieniem o którym napisałem w środku pliku nowy.c - dostosujcie szybkość zmian częstotliwosci do własnych preferencji.
Acha, zmiana jeszcze jest w pliku lcd_alfanum.c w funkcji:
Kod:
void bajt_lcd(unsigned char znak)
{
LCD_PORT = (LCD_PORT & 15)|(znak&240);
LCD_PORT |= (1<<LCD_E);
LCD_PORT &= (~1<<LCD_E);
LCD_PORT = (LCD_PORT & 15)|(znak<<4);
LCD_PORT |= (1<<LCD_E);
LCD_PORT &= (~1<<LCD_E);
_delay_ms(1); // było _delay_ms(10) czyli 10 ms opóźnienia
}
zmniejszyłem te opóźnienie żeby nie marnować cennego czasu mikrokontrolera.