Hirdetés
- Android másképp: Lineage OS és társai
- Nagy "hülyétkapokazapróktól" topik
- Asszociációs játék. :)
- Öregszem
- Milyen mosógépet vegyek?
- Fűzzük össze a szavakat :)
- Szólánc.
- POCO X6 PRO 5G VS Samsung Galaxy A54 - AnTuTu v10
- eBay-es kütyük kis pénzért
- Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
-
LOGOUT.hu
Ez itt, az elektronikával hobbiból foglakozók fórumtémája.
Lentebb összegyűjtötttem néhány elektronikával kapcsolatos, hasznos linket.
Új hozzászólás Aktív témák
-
lmaresz
aktív tag
Sziasztok!
Egy ST7066U-s 2 soros LCD és egy 16F887-es PIC kommunikációjával akadt problémám az előző napokban, az inicializálás sikeres, parancsokat is tudok küldeni neki, azonban az adatokat (betűket) valamiért mintha parancsként értelmezné. Nem találom a hibát, tudnátok segíteni, mi lehet a ludas?
Előre is köszönöm a segítséget!
A forráskódot csatolom:#define RS PORTAbits.RA0
#define RW PORTAbits.RA1
#define E PORTAbits.RA2
#define DATA PORTD
#define D0 PORTDbits.RD0
#define D1 PORTDbits.RD1
#define D2 PORTDbits.RD2
#define D3 PORTDbits.RD3
#define D4 PORTDbits.RD4
#define D5 PORTDbits.RD5
#define D6 PORTDbits.RD6
#define D7 PORTDbits.RD7
typedef unsigned int uint;
typedef unsigned char byte;
void pulseE()
{
__delay_us(1);
PORTAbits.RA2 = 1;
__delay_us(1);
PORTAbits.RA2 = 0;
__delay_us(1);
}
void writeLCD(byte Data, byte DataFlag, byte CheckBusy)
{
byte BusyFlag;
if (CheckBusy)
{
RS = 0;
TRISD = 1;
RW = 1;
do
{
E = 1;
__delay_us(1);
BusyFlag = D7;
E = 0;
} while (BusyFlag);
}
else
{
__delay_ms(10);
}
TRISD = 0;
RW = 0;
if (DataFlag == 1) RS = 1;
else RS = 0;
DATA = Data;
pulseE();
}
void outStringLCD(char *psz_s) {
while (*psz_s) {
writeLCD(*psz_s,1,1);
psz_s++;
}
}[ Szerkesztve ]
Új hozzászólás Aktív témák
Hirdetés
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest