PIC32-Pinguino

04.01.2013

pic


Linkkejä: Pinguino Hello World, printf (c++), mureakuha.com - C-Kielen alkeet, Pinguino - Millis

Uudempaan ohjelmaan oli lisätty esimerkkejä joista valitsin sitten yksinkertaisen "Hello World!" -koodin, jota muokata hiukan omalle 16x1 -näytölle sopivaksi. Pinguino käyttää muokattua arduino kirjastoa nimeltä "LibLcd" tässä tapauksessa. Käytössä oli yleismallinen (Hitachi HD44780 ) 16x1 näyttö (datasheet) johon täytyi saada tekstiä tulostetuksi. Näyttöä myydään 16x1 merkinnällä mutta se voi olla harhaanjohtavaa ja näyttö on todellisuudessa 8x2 -näyttö (kahdeksan pixeli ruutua (ruutu = merkki), kaksi riviä *Tässä tapauksessa vierekkäin kaksi 8kpl:n ruudukkoa). Näyttöä voi ohjata joko 4bit tai 8bit. Itse nyt käytän 8bit.



Pinnit:

LCD PIN-?? Pinguino D.PIN huom 1 ----- Vss (GND) ------------- GND ----------- *** 2 ----- Vdd ------------------- +5V ----------- POWER LOGIC.** 3 ----- Vo -------------------- +5V ----------- POWER LCD/Contrast.*** 4 ----- RS (Register Select) -- 8 (#define) --- * 5 ----- R/W (Read/Write) ------ GND ----------- LOW = kirjoita 6 ----- E (Enable) ------------ 9 (#define) --- GND? 7 ----- D0 -------------------- 0 - 8 ----- D1 -------------------- 1 - 9 ----- D2 -------------------- 2 - 10 ---- D3 -------------------- 3 - 11 ---- D4 -------------------- 4 - 12 ---- D5 -------------------- 5 - 13 ---- D6 -------------------- 6 - 14 ---- D7 -------------------- 7 - 15 A (+Anode) +5V *** 16 K (-Cathode) GND 15&16 on taustavalo.


*"When RS is low (0), the data is to be treated as a command or special instruction (such as clear screen, position cursor, etc.). When RS is high (1), the data being sent is text data which sould be displayed on the screen. For example, to display the letter "T" on the screen you would set RS high."-Lähde
**Vcc/Vdd(+), Vee/Vss(-) -Lähdelinkki.
***Muista vastus. Vähintään 40 Ohm.
Kun haluat vähentää pinnien/johtojen määrää kannattaa katsoa näitä, ja ohjata 4-bittinäisenä.

pic

/*----------------------------------------------------- Author: XantheFIN Date: 27/Dec/2012 Description: 8x2 display (16x1) -----------------------------------------------------*/ /* LiquidCrystal Library - Hello World Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. This sketch prints "Hello World!" to the LCD and shows the time. The circuit: * LCD RS pin to digital pin 0 * LCD E pin to digital pin 1 * LCD D4 pin to digital pin 2 * LCD D5 pin to digital pin 3 * LCD D6 pin to digital pin 4 * LCD D7 pin to digital pin 5 * LCD R/W pin to ground * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3) Pinguino port by Marcus Fazzi http://fazzi.eng.br */ void setup() { pinMode(USERLED, OUTPUT); // initialize the library with the numbers of the interface pins //lcd.pins(RS, E, D4, D5, D6, D7, 0, 0, 0, 0); //4bits //lcd.pins(RS, E, D0, D1, D2, D3, D4, D5, D6, D7); //8bits lcd.pins(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); // RS, E, D4 ~ D8 // set up the LCD's number of columns and rows: lcd.begin(8, 2); lcd.setCursor(0,0); lcd.print("Hello, "); lcd.setCursor(0,1); lcd.print("World!"); delay(2000); lcd.clear(); } void loop() { u32 t,r; u8 d,h,m,s; t = millis() / 1000; // time in sec. d = t / 86400; // days r = t % 86400; h = r / 3600; // hours r = t % 3600; m = r / 60; // minutes s = t % 60; // seconds // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 0); lcd.printf("UpTime "); lcd.setCursor(0, 1); lcd.printf("%02d:%02d:%02d", h,m,s); delay(500); }

Esimerkkejä;
lcd.setCursor(0,0); -Asetetaan tulostus ensimmäiseen ruutuun, ja ensimmäiselle riville (Vasen).
lcd.print("Hello, "); -Tulostaa(kirjoittaa) Hello, .
lcd.clear(); -Tyhjennä näyttö.
Laskenta on tehty ns. C kielellä jakolaskulla ja jakojäännöksellä. Tutustu linkkien takana oleviin materiaaleihin vaikkei tarkalleen ole puhdasta C-kieltä vaan sitä muistuttavaa.


Suurin osa selviää kokeilemalla ja sitä myöten niitten merkitys.

---Vieraskirja---

Web Analytics Clicky