> Och åtminstone i assembler spar man massor med utrymme
För macron dock enbart i källkoden, inte i processorn. Det var
inte tydligt viket du menade...
Problem med 1x8 DOG LCD och PIC
Re: Problem med 1x8 DOG LCD och PIC
Precis det är bara vad gäller CALL man spar minne, med macro gör man dock oftast koden mycket tydligare tycker jag. Man lär sig vilket som passar var.
Själv kör jag nästan uteslutande skicka till display/RS232 som CALL det är behändigast så.
För just displayer brukar jag köra två funktioner den ena heter typ Skicka_Tecken den andra heter Skicka_Kommando (fast på engelska) vad de gör torde framgå ganska klart
Själv kör jag nästan uteslutande skicka till display/RS232 som CALL det är behändigast så.
För just displayer brukar jag köra två funktioner den ena heter typ Skicka_Tecken den andra heter Skicka_Kommando (fast på engelska) vad de gör torde framgå ganska klart

Re: Problem med 1x8 DOG LCD och PIC
Nu har jag gjort om koden lite. Hoppas ni tycker det är snyggare nu?

Kod: Markera allt
char *text = "Axbri.";
void send(int value) { // skicka en byte data till displayen
PORTB = value; // lägg ut value på portB (data)
PORTC.F6 = 1; // sätt E hög
Delay_us (30); // vänta för att displayen ska läsa data
PORTC.F6 = 0; // sätt E låg
Delay_ms (1); // vänta innan nästa byte data skickas
}
void main() {
ANSEL = 0; // Configure AN pins as digital I/O
ANSELH = 0; // Configure AN pins as digital I/O
PORTB = 0; // clear portB
TRISB = 0; // portB = output
PORTC = 0; // clear portC
TRISC = 0; // portC = output
delay_ms(40); // inledande paus efter power on
Lcd8_init(&PORTC, &PORTB); // initriera Lcd8 för att
// biblioteksinstruktionerna ska fungera
PORTC.F4 = 0; // Clear RS = skicka komandon
send(0b00110001); // Function Set
send(0b00011100); // Bias Set
send(0b01010001); // Power control
send(0b01101010); // Follower control
send(0b01110100); // Contrast Set
send(0b00110000); // Function Set
send(0b00001111); // Display ON/OFF
send(0b00000001); // Clear display
send(0b00000110); // Entery mode Set
Lcd8_Cmd(LCD_CURSOR_OFF); // stäng av markören
Lcd8_Out(1, 1, text); // skriv ut variabeln text
}
- Swech
- EF Sponsor
- Inlägg: 4745
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Problem med 1x8 DOG LCD och PIC
Nu har du en kod som när du kommer tillbaks till den om .. säg 6 månader så kommer du att
fatta den igen bra mycket fortare än den förra versionen.
Vill man fixa ytterligare så bör du ev. deklarera upp bitar istället för dina "0b00110001"
så blir det ännu mer lättläst.
Swech
fatta den igen bra mycket fortare än den förra versionen.

Vill man fixa ytterligare så bör du ev. deklarera upp bitar istället för dina "0b00110001"
så blir det ännu mer lättläst.
Swech