Re: Problémy s PIC18F4620 a LCD

M

mariale442

Guest
Ja som sa sťahuje moje PIC18F452 kód do PIC18F4620 a som uviazol s LCD kódu.Čo bolo v poriadku na 452 teraz nie je v 4620.
Má niekto stretol s týmto typom problémov.

Je preto veľmi dôležité, pre mňa, aby to fungovať tak akýkoľvek druh pomoci by ocenili.

Ďakujem vám všetkým.

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />

Pridané po 16 minútach:To je môj kód.

Neviem, čo je problém

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />-------------------------------------------------- ---------------------------------------------
Toto je zdrojový súbor:
-------------------------------------------------- ---------------------------------------------

#
Include "lcdconfig.h"
#
Include <p18f4620.h>

Void lcd_wait ();
Void lcd_init ();
Void wrcmd (CHAR);

Void pauza (INT num)
/ / Utility a tak pauza pre
/ / A dobu.
(While (num -)
(/ * Nič robiť * /
)
)

Void lcd_init ()
/ / Inicializova na LCD displeja.
(PORTA = TRIS = 0;
TRISB = PORTB = 0xFF;
ADCON1 = 7;
wrcmd (0x30); / / 8-bit režim - 1 line.
wrcmd (LCD_SETVISIBLE 0 X04); / / Zobraz iba - bez kurzorov.
wrcmd (LCD_SETMODE 0 x02); / / Automatická inkrementace - Displej posun doľava.
wrcmd (LCD_SETDDADDR 0 x0F); / / východiskovej polohy krajnej pravice.
)

Void clearscreen ()
/ / Clear LCD obrazovka a reset
/ / Počiatočné pozície.
(Wrcmd (LCD_CLS);
wrcmd (LCD_SETDDADDR 0 x00);
)

/***** Užitkové funkcie *****/

/ / Napíš príkaz na LCD displeji.
Void wrcmd (CHAR cmdcode)
(TRISB = 0;
PORTB = cmdcode;

/ / PORTB Napíšte na západku dát do displeja.
/ / Prepínač Pin 'E' poslať príkaz.
PORTA = LCD_CMD_WR;
PORTA | = E_PIN_MASK;

Nop ();
PORTA & = ~ E_PIN_MASK;

lcd_wait ();
)

Void wrdata (CHAR data)
/ /
Write znak na LCD displeja.
(TRISB = 0;
PORTB = data;

PORTA = LCD_DATA_WR;
PORTA | = E_PIN_MASK;

Nop ();

PORTA & = ~ E_PIN_MASK;

lcd_wait ();
)

/ /
Wait for LCD obsadené vlajku jasné.
Void lcd_wait ()
(BYTE postavenie;
TRISB = 0xFF;

PORTA = LCD_BUSY_RD;
robiť
(PORTA | = E_PIN_MASK;

Nop ();

status = PORTB;
PORTA & = ~ E_PIN_MASK;
) While (stav & 0x80);
)

BUF CHAR [16] = "1. Consultar";

/ / Inicializova našej premenné a volania
/ / Zhromaždenie rutinné inicializovať na LCD displeji.

Void calc_display (BUF CHAR [16])
/ / Pomocou výstupu a Clearscreen rutin z
/ / * * LCD_Write montáž do výstupného súboru ASCII hodnôt na LCD.
(INT8 i;
clearscreen ();
for (i = 0; i <strlen (BUF), i )
/ / (If (BUF [calc_testkey (BUF ) | | BUF == 0x2D)
(
wrdata (BUF );
pause (5000);
)
/ /)
)Void main (void)
(Lcd_init ();
calc_display (BUF);
)-------------------------------------------------- ---------------------------------------------
toto je hlavička súboru:
-------------------------------------------------- ---------------------------------------------

typedef void Void;
typedef int INT;
typedef char INT8 podpísaná;
typedef int podpísaná INT16;
typedef podpísaná dlho INT32;
typedef unsigned krátke WORD;
typedef char CHAR;
typedef unsigned char BYTE;
typedef float dvojaký;
typedef dlhá dlhá;
typedef INT8 Bool;

/ / LCD Config

#
Define MAX_DISPLAY_CHAR 16/ / LCD registroch adresy (Port B)
#
Define LCD_CMD_WR 0x00
#
Define LCD_DATA_WR 0x01
#
Define LCD_BUSY_RD 0x02
#
Define LCD_DATA_RD 0x03

/ / LCD Príkazy
#
Define LCD_CLS 0x01
#
Define LCD_HOME 0x02
#
Define LCD_SETMODE 0x04
#
Define LCD_SETVISIBLE 0x08
#
Define LCD_SHIFT 0x10
#
Define LCD_SETFUNCTION 0x20
#
Define LCD_SETCGADDR 0x40
#
Define LCD_SETDDADDR 0x80

#
Define E_PIN_MASK 0x04

#
Define FALSE 0
#
Define TRUE 1

-------------------------------------------------- ------------------------------------------
pomozte meeeeeee ...

<img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />
 
Ahoj mariale442

Hovoril som si, prečo si nie migrácii na odporúčané 18F4520, ktorý je prakticky rovnaký čip - možno budete potrebovať väčšiu flash z 4620?

Migrácie do 4620 si vyžaduje trochu viac starostlivosti.

Skontrolujte ADCON0 a ADCON1 - nie sú indentical na 452 & 4620
Myslím, že váš problém môže byť v LCD initalisation priestoru.- I
Nenašli kontrolujú v detaile.

...Vševed

 

Welcome to EDABoard.com

Sponsor

Back
Top