Fórum témák
- • Mikrohullámú sütő javítás, magnetron csere, stb.
- • Kombikazán működési hiba
- • Léptetőmotorok (vezérlése)
- • Felajánlás, azaz ingyen elvihető
- • WLAN router
- • IMI villanymotor
- • Elfogadnám, ha ingyen elvihető
- • Audiofil, High End Audio
- • Erősítő mindig és mindig
- • Muzeális készülékek-alkatrészek restaurálása
- • Multiméter - miért, milyet?
- • MyElecParts alkatrész kereső és készlet nyilvántartó
- • Vicces - mókás történetek
- • DSC riasztó
- • Érdekességek
- • Villanymotor bekötése
- • Hegesztő inverter javítás
- • Klíma beszerelése, fűtés-hűtés házilag
- • Erősítő építése elejétől a végéig
- • Próbapanel (dugaszolós)
- • Kapcsolási rajzot keresek
- • Telefon és LAN hálózat kialakítása
- • Fejhallgató erősítő
- • Leválasztó transzformátor
- • Garázskapu mozgató
- • PIC - Miértek, hogyanok haladóknak
- • Gázkazán vezérlő hibák
- • Fényorgona
- • Ki hol gyártatja a NYÁK-ot ?
- • Napelem alkalmazása a lakás energia ellátásában
- • Labortápegység készítése
- • HDMI bekötés
- • Indukciós főzőlap javítása
- • Vásárlás, hol kapható?
- • Háromfázisú aggregátor
- • Villanyszerelés
- • Riasztószerelés tapasztalatok, ötletek (kizárólag haladóknak)
- • Codefon kaputelefon
- • Kávéfőzőgép hiba
- • Házilag építhető fémkereső
- • Skoda Octavia elektromos probléma
- • LCD TV probléma
- • TV hiba, mi a megoldás?
- • Radiosonde
- • Oszcilloszkóp vétel, mit gondoltok?
- • Rádióamatőrök topikja
- • Bojler javítása, kérdések
- • Folyamatábrás mikrokontroller programozás Flowcode-dal
- • Westen 240 Fi gázkazán hiba
- • Szünetmentes táp javítása, élesztése
- • Klíma szervizelés, javítás
- • Nyomtató probléma
- • Szobatermosztát bekötése
- • Tina
- • Lemezjátszó beállítása, javítása
» Több friss téma
|
Fórum » PIC - Miértek, hogyanok haladóknak
Hy Hp41c!
köszi sokat segítettél, megtaláltam a hibát: hiányzott egy küldés engedélyezés: "BSF TXSTA,TXEN". Már müködik!!!
Nem tudom mit vergődsz a TRMIT -tel... Ez működik...
; sorosport proba.asm
; RA0 és 1 emenetek kapcsolóval
; RB0 és 7 kimenet leddel
; RC7 RX bemenet
; RC6 TX kimenet
; órajel 2MHz
; PROCESSOR 16F877
list p=16f877 ; list directive to define processor
#include "p16f877.inc"
__CONFIG _CP_OFF &_CPD_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _HS_OSC & _LVP_OFF
BCF STATUS,RP0
BCF STATUS,RP1 ;Bank0
CLRF PORTA
CLRF PORTB
CLRF PORTC
BSF STATUS,RP0
BCF STATUS,RP1 ;Bank1
MOVLW 0x06 ;00000110
MOVWF ADCON1 ;A port dig ki be menet legyen
MOVLW 0x03 ;00000011, W-be
MOVWF TRISA ;A bement
CLRF TRISB ;B kimenet
;sorosport beállítások
MOVLW b'11000000'
MOVWF TRISC ;C porton 7 bit bemenet (RX) a többi kimenet
MOVLW 0x0C ;DEC12
MOVWF SPBRG ;Baudrate osztóhoz DEC12
MOVLW b'00100100' ;BRGH=1, TXEN=1
MOVWF TXSTA
BCF STATUS,RP0 ;Bank0
BCF STATUS,RP1
MOVLW b'10010000'
MOVWF RCSTA
BSF PORTB,0
SendMessage:
MOVLW '1'
call Send
MOVLW '6'
call Send
MOVLW 'F'
call Send
MOVLW '8'
call Send
MOVLW '7'
call Send
MOVLW '7'
call Send
MOVLW 0x0D ; CR
call Send
MOVLW 0x0A ; LF
call Send
BSF PORTB,1
goto SendMessage
Send:
btfss PIR1,TXIF
goto Send
movwf TXREG
return
END
Üdv Mindenkinek
Megoldódott köszönöm.
Túl sok minden volt benne az előző progiból.
Gond nélkül lefordítja.
Köszönöm.
Mégse jó csak azért fordította le mert a megszakított rész az END után volt.
#include <p16F887.inc>
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
ADL EQU 0x119
ADH EQU 0X11A
IDO1 EQU 0x24
IDO2 EQU 0x25
VALASZT EQU 0X3D
TESZT EQU 0X121
TIMER0 EQU 0X23
TIMER1 EQU 0X22
ORG 0X000
START
CALL WAIT
;BANKSEL OSCCON
;MOVLW B'00001110' ;ÓRAJEL KIV.
;MOVWF OSCCON
BANKSEL PORTC
CLRF PORTC
BANKSEL TRISC
MOVLW B'00000000'
MOVWF TRISC
BANKSEL PORTA ;
CLRF PORTA ;Init PORTA
BANKSEL ANSEL ;
MOVLW B'11001111'
MOVWF ANSEL ;ANALOG I/O
BANKSEL TRISA ;
MOVLW B'11001111' ;0-3,6-7 inputs 4-BIT , 5bit OUTPUT
MOVWF TRISA ;
BANKSEl PORTB
CLRF PORTB
BANKSEL ANSELH
MOVLW B'00000000'
MOVWF ANSELH
BANKSEL TRISB
MOVLW B'11000001' ;3-IK BITET ÁTÍRTAM VISSZAÍRTAM
MOVWF TRISB
BANKSEL PORTD
CLRF PORTD
BANKSEL TRISD
MOVLW B'00000000'
MOVWF TRISD
BANKSEL PORTE
CLRF PORTE
BANKSEL ANSEL
CLRF ANSEL
BANKSEL TRISE
MOVLW B'00000000'
MOVWF TRISE
BANKSEL OPTION_REG
BCF OPTION_REG,7 ;felhuzó ellenállás bekapcs
;BANKSEL WDTCON
;MOVLW B'00010111'
;MOVWF WDTCON
BANKSEL PIE2
BSF PIE2,6
BANKSEL PIR2
BCF PIR2,6 ;ÁT ÍRTAM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
BANKSEL INTCON
BSF INTCON,7
BSF INTCON,6
BANKSEL VALASZT
BSF VALASZT,0
BANKSEL IDO1
MOVLW B'00000001'
MOVWF IDO1
BANKSEL CM1CON0
MOVLW B'10100001'
MOVWF CM1CON0
BANKSEL CM2CON0
MOVLW B'10100000'
MOVWF CM2CON0
;----------------------------------------------INICIALIZALAS VEGE -------------------------------------------------------------------
;---------------------------------------------- FŐ HUROK-----------------------------------------------------------------------------
QW
BANKSEL PORTC
CLRF PORTC
QQ
MOVLW B'00000011'
MOVWF PORTC
;NOP ; töltődik
CLRF PORTC ;középen
CALL WA
KK
MOVLW B'00001100'
MOVWF PORTC ;kisül
CLRF PORTC
GOTO QQ
;------------------------------------------------FŐ HUROK VÉGE ---------------------------------------------------------------------
;------------------------------------------------ SZABÁLYZÁS -----------------------------------------------------------------------
NOV
BSF VALASZT,0
INCFSZ IDO1
GOTO QZ
DECF IDO1
GOTO QZ
;----------------------------------------------------------------------------------------------------------------------------
CSOKK
BTFSS VALASZT,0
GOTO QZ
DECFSZ IDO1
GOTO QZ
CLRF VALASZT
GOTO QZ
;--------------------------------------------------- SZABÁLYZÁS VÉGE ---------------------------------------------------------------
;---------------------------------------------------VÁRAKOZÁS SZUBRUTINOK-----------------------------------------------------------
WA
BTFSS VALASZT,0
RETURN
MOVFW IDO1
MOVWF IDO2
MOVLW 0X01
WC
SUBWF IDO2
BTFSS STATUS,2
GOTO WB
RETURN
WB
BTFSC STATUS,0
GOTO WC
CLRF IDO2
RETURN
;----------------------------------------------------------------------------------------------------------------
WAIT
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW 0xFF
MOVWF TIMER0
MOVLW 0x03
MOVWF TIMER1
DLY1
NOP
DECFSZ TIMER0,F
GOTO DLY1
DECFSZ TIMER1,F
GOTO DLY1
RETURN
;-----------------------------------------------VÁRAKOZÁS SZUBRUTINOK VÉGE -----------------------------------------
;----------------------------------------------MEGSZAKÍTÁS ---------------------------------------------------------
ORG 0x04
;RETFIE
BTFSS PORTA,5
RETFIE
QT
BANKSEL PORTC
CLRF PORTC
QZ
MOVLW B'00000011'
MOVWF PORTC ;PRIMER
CLRF PORTC ;középen
CALL WA
MOVLW B'00001100' ;SZEKUNDER
MOVWF PORTC ;kisül
CLRF PORTC ;KÖZÉPEN
BTFSS PORTA,4
GOTO NOV
BTFSS PORTA,5
GOTO CSOKK
RETFIE
END
;-------------------------------------------------------------------------------------
Message[305] C:\USERS\ANDRAS\DOCUMENTS\ASM\REPKOND2\ADC.ASM 112 : Using default destination of 1 (file).
Message[305] C:\USERS\ANDRAS\DOCUMENTS\ASM\REPKOND2\ADC.ASM 114 : Using default destination of 1 (file).
Message[305] C:\USERS\ANDRAS\DOCUMENTS\ASM\REPKOND2\ADC.ASM 120 : Using default destination of 1 (file).
Message[305] C:\USERS\ANDRAS\DOCUMENTS\ASM\REPKOND2\ADC.ASM 133 : Using default destination of 1 (file).
Executing: "C:\Program Files\Microchip\MPASM Suite\mplink.exe" /p16F887 "adc.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /z__MPLAB_DEBUGGER_PICKIT2=1 /z__ICD2RAM=1 /o"adc.asm.cof" /M"adc.asm.map" /W
MPLINK 4.43, Linker
Device Database Version 1.9
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section '.org_1' can not fit the absolute section. Section '.org_1' start=0x00000004, length=0x00000022
Errors : 1
Link step failed.
----------------------------------------------------------------------
Debug build of project `C:\Users\andras\Documents\ASM\repkond2\adc.asm.mcp' failed.
Language tool versions: MPASMWIN.exe v5.46, mplink.exe v4.44, mplib.exe v4.44
Preprocessor symbol `__DEBUG' is defined.
Target debug platform is `__MPLAB_DEBUGGER_PICKIT2=1'.
Debug platform options are: `__ICD2RAM=1'.
Sun Sep 01 10:16:43 2013
----------------------------------------------------------------------
BUILD FAILED
Szia!
A megszakítást (0x04-tő)l olyan helyre akarod fordíttatni, ahová a fordító már generált kódot.
ORG 0x0-ra tegyél egy GOTO START utasítást, a START elé pedig pl. ORG 0x100-at. Így nem ütközik a megszakítással.
A "klasszikus" megoldás az, hogy elöl van a kódban az interrupt rutin, aztán a főprogram az általad leírt módszerrel:
ORG 0x0
GOTO START
ORG 0x4
; interrupt handler
...
RETFIE
; main
START
...
Hálás köszönet ez volt a gond.
VL_ megoldását választottam.
Szépen lefordította.
Sajnos rosszul számoltam. Előbb kell gyököt vonnom és utána osztanom nem pedig fordítva. Így viszont a szám amiből gyököt kell vonnom még nagyobb és nem elég a 4 bájt. 5 bájtból (34 bitből) kellene négyzetgyököt vonnom assembly-ben. Na, ilyen rutint nem nagyon találok. Eddig 32 bit a legnagyobb amibe belebotlottam a neten.
sqrt (A) / B = sqrt (A / (B * B))...
Hmm, mondasz valamit!
A gyökvonás után 10-zel kellene osztanom egyébként, de a gyökvonás után és az osztás közt még hozzáadnék 5-öt a kerekítés miatt. Így most akkor mennyit kellene hozzáadnom és mihez? A hozzászólás módosítva: Szept 2, 2013
Sziasztok!
MikroC-t használ valaki közületek? Azon belül HW-es I2C libraryt? TM1636-hoz kellene.
Adatlapról a kód, picit már átírva MikroC-re. Működik, csak jobb szeretném HW I2-c-re tenni.
void I2CWrByte(unsigned char oneByte) // Write a byte
{
unsigned char i;
for(i=0;i<8;i++)
{
clk = 0;
if(oneByte & 0x01) // Low in the front
{
dio = 1;
}
else
{
dio = 0;
}
Delay_us(3);
oneByte=oneByte>>1;
clk=1;
Delay_us(3);
}
}
Ez egy saját szoftveres I2c írás, majd utána várja az ACk-t egy függvény:
void I2Cask(void) //1636 Answer
{
clk = 0;
Delay_us(5); // In eighth after the falling edge of the clock delay 5us,
// began to determine ACK signal
DIO_io=1; //DIO pin inputra állítva
while(dio);
clk = 1;
Delay_us(2);
DIO_IO=0; //DIO pin outputra állítva
clk=0;
}
Ezt a 8. bit utáni ACK visszatérést hogy lehetne megoldani hardware-esen? Regisztert török? Vagy stop, és következő újra kiír? Vagy idle? Vissza nem kell adat, csak küldök. ACk nélkül viszont nem megy. A hozzászólás módosítva: Szept 4, 2013
Lenne egy CEREBOT MX7CK fejlesztő panelem de sajnos nem tudom használni, mert az MPLAB X V1.85 ezzel a hibával dobja ki:
"PICkit 3 firmware too old", az MPLAB IPE-vel sem működik.
Mit lehetne csinálni?
Sajnos, nekem nincs ilyen, de a leírását könnyű megtalálni. Eszerint MPLAB 8.63-mal biztosan megy (de az újabbakkal is mennie kellene), de a menüben nem PICkit3-at, hanam "Licensed Debugger"-t kell kiválasztani.
Az MPLAB és a fordítók régebbi verziói erről az oldalról tölthetők le.
"Licensed Debugger"-t választottam ki, ezért is nem értem miért PIC kit a hibaüzenet. A hozzászólás módosítva: Szept 10, 2013
Ha jól nézem a fémyképét, a "Debugging cicruit" helyén egy PIC24FJ256GB106 ül... Ilyen van a PICkit3 -ban is...
Igen tényleg az van benne, akkor arra kéne valami újat rá flesselni?
PIC18F25K80-ról van szó.
Írogatok egy programot, amiben van egy olyan rész hogy az HLVD modul a PIC tápfeszének megszűnésekor megszakítást generál, majd a megszakításban elment az EEPROM-ba kb 18-20 bájtot. Bekapcsoláskor pedig, amikor újból tápfeszültséget kap az áramkör akkor betölti az EEPROM-ból az elmentett regisztereket a memóriába és onnan dolgozik szépen tovább. Ez így szuperül működik is, azonban néha az egyik regiszter (pont az egyébként amit utoljára mentek el), nem azt tartalmazza amit kellene. Próbáltam debuggerben megnézni mi történik de ott nem szűntethetem meg a PIC tápját mert akkor leáll a debuggolás is ugyebár. Ezért beírtam pár sort pluszban a programba hogy ha az áramkörben lévő egyik csati két lábát rövidre zárom akkor hívja meg ugyan azt az EEPROM-ba elmentő szubrutint mint amit a HLVD modul hív meg a megszakításban, majd ugorjon a PIC resetvektorra. Így a debuggolás már nem áll meg és ellenőrizni tudnám hogy pontosan mi is történik, de így nem jön elő a hiba! Gondolkodtam rajta hogyan lehetne még rájönni; beleégettem a programot a PIC-be és programozási módba léptem hogy a PICkit3 csak tápfeszt adjon az áramkörnek, a PIC magától tudjon futkározni. Ekkor lehúztam a PICkit3-at az áramkörről majd újra rádugtam (tápfesz le majd vissza) aztán beolvastam az EEPROM tartalmát, és a kérdéses bájt FF volt! Pedig 00-nak kellett volna lennie. Ötlet hogy mi lehet a gond? Arra is gondoltam hogy megváltoztatom a bájtok EEPROM-ba való elmentésének sorrendjét hogy ne ez a bájt legyen az utolsó hanem egy másik, ez esetben az a másik bájt lett a hibás. Ekkor arra gyanakodtam hogy talán pont akkor szűnik meg a PIC tápfesze annyira hogy már nem tudja azt az utolsó bájtot megírni. Ezért próbaképp írtam pár sort ami teleírja az EEPROM-ot amíg csak le nem kapcsol a PIC teljesen. Nos nem emlékszem már pontosan de kb 350 bájtot sikerült megírnia úgyhogy ez a hibalehetőség kizárva.
Annyit még kipróbálhatsz, hogy az utolsó írás után a címregisztert átírod, hogy akkor az átírt verzió szerinti byte romlik el, vagy az utoljára írott. Az első esetben valami random történés generál egy írásműveletet, a második verzió esetében viszont az utolsó írás valamiért nem fejeződik be rendesen, mire elmegy az áram.
Írj plusz két bájtot (pl.: 55,00), így az újraindított program ellenőrizni tudja, hogy a mentés teljesen lefutott (55). Visszatöltés után töröld az 55-öt (vagy átírod AA-ra).
Helló!
Nincs valakinek valamilyen új információja a PIC32MZ-ről?
Helló mindenki!
A hangkártyámat, hogy tudnám rákötni egy PIC -re? Szeretnék valami látványos hangulatvilágítást készíteni. LED szalag, PIC. Ha zenét hallgatok villoghatna zenére a LED szalag, amúgy meg a PIC villogtathatná stb.
Előre is köszi!
Egy analóg bemenetet vagy esetleg egy komparátort használhatsz ilyen célra.
Idézet: „A hangkártyámat, hogy tudnám rákötni egy PIC -re?” A hangártya kimenő jelét a PIC ADC-je tudja fogadni. Esetleg egy műveleti erősítő kellhet közéjük...
Olyasmire gondoltam, hogy basszusra villoghatna. Tehát logikai egyes jelenjen meg ritmusra, mint a kivezérlés jelzőnél. A hangkártyából milyen feszültségszintek érkeznek?
Sziasztok!
Egy kis segítségre lenne szükségem.
Valaki tudna magyarázatot adni arra, hogy van egy PIC16f886+4x20lcd+16darab ds18b20.
Amikor feszültség alá helyezem, akkor nagyon ritkán, 10-ből 1x nem ír ki semmit az lcd így azt sem tudom, hogy elindult e a program, vagy mi történik.
A kijelző háttérvilágítás az bekapcsol, de nem látszik semmi.
Valami az inicializálással lehet? Csatolom a config biteket.
__CONFIG(FOSC_XT & WDTE_OFF & PWRTE_ON & MCLRE_ON & CPD_OFF & CP_OFF & BOREN_ON & IESO_ON & FCMEN_ON & LVP_OFF & BOR4V_BOR40V);
Inkább az LCD inicializálása lehet a gond. Megcsinálod azt, hogy háromszor egymás után 8 bitessé inicializálod, és ha négy bitesként akarod kezelni, akkor csak ezután inicializálod négy bitessé, mint ebben az adatlapban a 45. és 46. oldalakon mutatja a folyamatábra?
Csatolom az lcd.c kódot:
#include <htc.h>
#include "vdelay.h"
#define _XTAL_FREQ 4000000
#define lcd_data PORTB
#define lcd_rs RB7
#define lcd_en RB6
#define lcd_bl RB5
#define lcd_enable() ((NOP()),(lcd_en=1),(NOP()),(NOP()),(lcd_en=0))
void lcd_write(unsigned char c);
void lcd_init(void){
lcd_rs=0;
lcd_en=0;
vWait_ms(16);
lcd_data=0x0C;
lcd_enable();
vWait_ms(5);
lcd_enable();
vWait_us(150);
lcd_enable();
lcd_write(0x28);
lcd_write(0x0C);
lcd_write(0x06);
lcd_bl=1;
}
void lcd_write(unsigned char c)
{
unsigned char x=0,y=0;
x =((c<<3)&0b10000000);
x|=((c<<1)&0b01000000);
x|=((c>>1)&0b00100000);
x|=((c>>3)&0b00010000);
y =((c>>3)&0b00000001);
y|=((c>>1)&0b00000010);
y|=((c<<1)&0b00000100);
y|=((c<<3)&0b00001000);
__delay_us(40);
lcd_data = (lcd_data & 0xF0) | (x >>4); //felso 4 bit
lcd_enable();
lcd_data = (lcd_data & 0xF0) | (y & 0x0F); //alsó 4 bit
lcd_enable();
}
void lcd_clear(void){
lcd_rs=0;
lcd_write(0x01);
vWait_ms(2);
}
void lcd_goto(unsigned char g){
lcd_rs=0;
lcd_write(0x80+g);
}
void lcd_putch(char c){
lcd_rs=1;
switch(c){
case 'ü': lcd_write(0x00); break;
case 'u': lcd_write(0x01); break;
case 'ö': lcd_write(0x02); break;
case 'ő': lcd_write(0x03); break;
case 'ó': lcd_write(0x04); break;
// case 'ú': lcd_write(0x05); break;
case 'í': lcd_write(0x06); break;
case 'á': lcd_write(0x07); break;
case 'é': lcd_write(0x05); break;
default: lcd_write(c);
}
}
void lcd_puts(const char *s){
lcd_rs=1;
while(*s){
// vWait_ms(60);
lcd_putch(*s++);
}
vWait_us(10);
}
void lcd_dec(unsigned char cim, unsigned char szam){
if(szam>=100){
lcd_goto(cim);
lcd_putch(szam/100+48);
}
else{
lcd_goto(cim);
lcd_putch(' ');
}
if(szam>=10){
lcd_putch((szam%100)/10+48);
}
else{
lcd_putch(' ');
lcd_goto(cim+2);
}
lcd_putch((szam%100)%10+48);
}
void lcd_init_cgram(void){
lcd_rs=0;
const unsigned char cgram[]={
0x0a,0x00,0x11,0x11,0x11,0x13,0x0d,0x00, //ü
0x05,0x0a,0x11,0x11,0x11,0x13,0x0d,0x00, //u
0x0a,0x00,0x0e,0x11,0x11,0x11,0x0e,0x00, //ö
0x05,0x0a,0x00,0x0e,0x11,0x11,0x0e,0x00, //o
0x02,0x04,0x00,0x0e,0x11,0x11,0x0e,0x00, //ó
//0x02,0x04,0x11,0x11,0x11,0x13,0x0d,0x00, //ú
0x02,0x04,0x0e,0x11,0x1f,0x10,0x0e,0x00,
0x02,0x04,0x00,0x04,0x0c,0x04,0x0e,0x00, //í
0x02,0x04,0x0e,0x01,0x0f,0x11,0x0f,0x00}; //á
lcd_write(0x40);
for(unsigned char cgindex=0;cgindex<=63;cgindex++){
lcd_putch(cgram[cgindex]);
}
lcd_goto(0x00);
}
void lcd_senddecimal(int data, char elojel){
static char sign, s[12];
unsigned int i;
i=0; sign='+';
if(data<0) { sign='-'; data = -data;}
do {
s[i]=data%10 + '0';
data=data/10;
i++;
} while(data>0);
if(elojel==0) lcd_putch(sign);
do{
lcd_putch(s[--i]);
} while(i);
}
Itt meg az lcd.h kód:
extern void lcd_write(unsigned char c);
extern void lcd_init(void);
extern void lcd_clear(void);
extern void lcd_goto(unsigned char g);
extern void lcd_putch(unsigned char c);
extern void lcd_puts(const char *s);
extern void lcd_dec(unsigned char cim, unsigned char szam);
extern void lcd_init_cgram(void);
extern void lcd_senddecimal(int data, char elojel);
Idézet: „Megcsinálod azt, hogy háromszor egymás után 8 bitessé inicializálod, és ha négy bitesként akarod kezelni, akkor csak ezután inicializálod négy bitessé?”
Tehát?
lcd_data=0x0C;
lcd_enable();
vWait_ms(5);
lcd_enable();
vWait_us(150);
lcd_enable();
Elvileg ez 3x megcsinálja.
Esetleg valami ötletetek nincs? Ugyanezt a kódot használom 2x16 lcd-re is. Ott nincs ilyen gond.
|
|