Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 3.874 pregleda

Najnovija ↓

easypic5 i 2x16lcd u ccs c 16.05.2008. u 13:54 · pre 225 meseci #1
Da li je neko uspeo da podesi lcd.c fajl u CCS C - u tako da moze da ga koristi sa easyPIC5 razvojnim sistemom. Uporno pokusavam da ga podesim i ne polazi mi za rukom, pa rekoh da pre nego sto pocnem da pisem sam dajver, pitam da li je neko to uradio i kako. Hvala na odgovoru.
Re: easypic5 i 2x16lcd u ccs c 17.05.2008. u 07:27 · pre 225 meseci #2
Nemam semu vezivanja lcd-a na toj ploci ali mislim da ti je glavni razlog taj sto drajver u CCS-su koristi i RW pin i ima dvosmeru komunikaciju sa LCD-om. Ako se na demo ploci ne koristi RW pin potrebno je drajver prepraviti tako sto ce se umesto cekanja da LCD posalje signal da je slobodan za sledeci podatak, unese odgovarajuce kasnjenje pa slanje novog podatka. Takodje je potrebno obratiti paznju na definiciju pinova za povezivanje LCD-a (potrebno je promeniti strukturu lcd_pin_map).
Re: easypic5 i 2x16lcd u ccs c 17.05.2008. u 20:41 · pre 225 meseci #4
I ja sam imao slicnih problema ali sa EasyARM i na kraju se ispostavilo da 3 izlazna pina na mcu nisu radila, pnp izlazi medju kojima je bio i E signal. Dodao sam 3 otpornika od 820r prema + i resio problem.
Pokusaj ubaciti led.hex iz primera, pa posmotri dali ima neki wtf.
Potpis
__*__
*___*
Re: easypic5 i 2x16lcd u ccs c 17.05.2008. u 22:03 · pre 225 meseci #5
Primer koji su mi oni poslali radi tako da je sa kontrolerom sve u redu. Probacu sutra da napisem sam fajl pa cemo da vidimo.
Re: easypic5 i 2x16lcd u ccs c 17.05.2008. u 22:21 · pre 225 meseci #6
Evo ti deo koda koji sam prepravio da radi sa mojim uredjajem:

struct lcd_pin_map { // This structure is overlayed
int unused : 4; // B0-B3 unused
int data : 4; // B4-B7 LCD.DATA
BOOLEAN rs; // C0 - RS
BOOLEAN enable; // C1 - EN.
BOOLEAN unused2; // C2 unused
BOOLEAN unused; // C3 unused
int unused4 : 4; // C4-C7 unused
} lcd;

#locate lcd = 6

#define lcd_type 2 // 0=5x7, 1=5x10, 2=2 lines
#define lcd_line_two 0x40 // LCD RAM address for the second line


BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};
// These bytes need to be sent to the LCD
// to start it up.

void lcd_send_nibble( BYTE n ) {
lcd.data = n;
delay_cycles(1);
lcd.enable = 1;
delay_us(2);
lcd.enable = 0;
}


void lcd_send_byte( BYTE address, BYTE n ) {

set_tris_lcd(0);
lcd.rs = address;
delay_cycles(1);
lcd.enable = 0;
lcd_send_nibble(n >> 4);
lcd_send_nibble(n & 0xf);
set_tris_lcd(0xf);
}


void lcd_init() {
BYTE i;
set_tris_lcd(0);
lcd.rs = 0;
lcd.enable = 0;
delay_ms(15);
for(i=1;i<=3;++i) {
lcd_send_nibble(3);
delay_ms(5);
}
lcd_send_nibble(2);
for(i=0;i<=3;++i)
lcd_send_byte(0,LCD_INIT_STRING);
}


void lcd_gotoxy( BYTE x, BYTE y) {
BYTE address;

if(y!=1)
address=lcd_line_two;
else
address=0;
address+=x-1;
lcd_send_byte(0,0x80|address);
}

void lcd_putc( char c) {
switch (c) {
case '\f' : lcd_send_byte(0,1);
delay_ms(2);
break;
case '\n' : lcd_gotoxy(1,2); break;
case '\b' : lcd_send_byte(0,0x10); break;
default : lcd_send_byte(1,c); break;
}
}


Re: easypic5 i 2x16lcd u ccs c 18.05.2008. u 12:22 · pre 225 meseci #7
Bio si u pravu u pitanju je to sto je kod mene RB4 - enable RB5 - rs a RB0 - RB3 data, pin rw je konstatno na masi tako da na displej moze samo da se pise. Hvala za kod. Pozdrav
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme