26-01-2012, 23:16
Sorry - ale bez przeczytania dokumentacji do elementów elektronicznych sterowanych programem (uP i peryferia) - może być lipa.
Przepraszam - już się nie wtrącam.
Przepraszam - już się nie wtrącam.
(26-01-2012 21:04)SQ6ADE napisał(a): [ -> ]Nie tracić czasu proca i korzystać z informacji zgromadzonych w wyświetlaczu.
Lektura obsługi sterownika HD-LCD wskazana.
(26-01-2012 21:44)SP4EJT napisał(a): [ -> ](26-01-2012 20:57)SQ9RFC napisał(a): [ -> ]Nadal dręczy mnie pytanie: po co robisz zapis do portu który ustawiony jest do odczytu?Mógłbyś rozwinąć to pytanie ? bo nie do końca wiem o co chodzi ...
(26-01-2012 23:16)SQ6ADE napisał(a): [ -> ]Sorry - ale bez przeczytania dokumentacji do elementów elektronicznych sterowanych programem (uP i peryferia) - może być lipa.Ja o tym wiem, ale ludzie korzystający z tego kursu nie są najlepsi w tym temacie - podejrzewam że niektórzy na tyle słabo znają komputerowe sprawy, że nie znajdą właściwych pomocy w internecie ... nie wpominając już o czytaniu chociażby noty aplikacyjnej AD9951 w języku angielskim (ze zrozumieniem).
Przepraszam - już się nie wtrącam.
(26-01-2012 23:54)SP5IWI napisał(a): [ -> ]Przy kompilowaniu moich wypocin(dołożyłem plik "makefile") a także lekcji 9 mam taki sam komunikat:Janku, czy potrafisz skompresować katalog z zawartością tego niedziałającego projektu i przesłać tu, na forum jako załącznik ? Tak jak ja to robię z lekcjami, wtedy będę mógł sprawdzić to u siebie i być może znajdę błąd.
Build started 26.1.2012 at 22:44:51
make: *** Brak reguł do zrobienia obiektu `../NOWY.c', wymaganego przez `NOWY.o'. Stop.
Build failed with 1 errors and 0 warnings...
Przerabiałem kilka razy i zawsze mam taki wynik,jakieś sugestie?
(26-01-2012 20:57)SQ9RFC napisał(a): [ -> ]...Lekcja3 się kłania, oto jej fragment :
int main(void)
{
DDRA = 255;
DDRB = 0x00; // ustawiasz wszystkie piny portu B jako wejścia
PORTB= 0x01; // tu nie kapuje: wpisujesz do portu B wartość, po co ? skoro ten port wcześniej ustawiasz do odczytu.
PORTA= 0b01010101;
while(1)
...
Cytat:#include <avr/io.h>
#include <util/delay.h>
/* Konfiguracja - na którym porcie i na wyprowadzeniach puszczamy sterowanie LCD */
#define DEF_PORT DDRA /* wpisujemy DDRA, DDRB, DDRC, DDRD - zależy który port będzie obsługiwał wyświetlacz */
#define LCD_PORT PORTA /* wpisujemy, który port ma wysyłać dane do wyświetlacza - 4 starsze bity portu (7,6,5,4) */
/* podłączamy odpowiednio do wyjść D7, D6, D5, D4 wyświetlacza */
#define LCD_RS 3 /* które wyprowadzenie PORTU będzie linią RS */
#define LCD_E 2 /* które wyprowadzenie portu ma być linią E */
/* koniec konfiguracji. Pamiętajcie że numeracja wyprowadzeń PORTU zaczyna sie od "0" */
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(10);
}
void napis_lcd(char tab[])
{
LCD_PORT = LCD_PORT|(1<<LCD_RS);
int i=0;
while(tab[i]!=0)
{
bajt_lcd(tab[i]);
i=i+1;
}
}
void init_lcd(void)
{
DEF_PORT = 0xf0|(1<<LCD_RS)|(1<<LCD_E);
unsigned char i;
for(i=0;i<3;i++)
{
LCD_PORT = (LCD_PORT&0x0f)|(0x30&0xf0);
LCD_PORT |= (1<<LCD_E);
LCD_PORT &= (~1<<LCD_E);
_delay_ms(50);
}
LCD_PORT = (LCD_PORT&0x0f)|(0x20&0xf0);
LCD_PORT |= (1<<LCD_E);
LCD_PORT &= (~1<<LCD_E);
_delay_ms(50);
bajt_lcd(0x28); // Interfejs 4-bit, Wyświetlacz dwuwierszowy, Matryca znaków 5x7
bajt_lcd(0x01); // czyszczenie i przesuniecie na poczatek LCD
bajt_lcd(0x0e); // włączenie wyświetlacza kursor widoczny niemrygający
}
Cytat:Janku, czy potrafisz skompresować katalog z zawartością tego niedziałającego projektu i przesłać tu, na forum jako załącznik ?
(27-01-2012 14:22)SP5IWI napisał(a): [ -> ]Dzisiaj widocznie lepszy dzień,zrobiłem od nowa i poszło normalnie, przerobiłem wszystkie porty i na każdym jest ok.Wyświetla się napis "napis_"... tak trzymaj ... napisz co było nie tak.
(27-01-2012 13:54)SQ9JXB napisał(a): [ -> ]Czy ten kod dla portu A jest prawidłowy? nazwy portów pokazałem jako tekst pogrubiony.Jeżeli zmieniłeś tylko DDRD na DDRA i PORTD na PORTA to TAK, powinno działąć na porcie A
SQ9JXB napisał(a):P.S. wczytałem plik nowy.hex i nic się nie wyświetla. W kompilacji nie mam errorów.Wcześniejsze lekcje Ci działały, a ta dziewiąta nie działa ??
Cytat:Wcześniejsze lekcje Ci działały, a ta dziewiąta nie działa ??