Un saluto a tutti.
Sto provando la DUE, con VGA out e keboard PS2.
Qualcuno sà indicarmi come risolvere il problema "credo di interrupt" tra le librerie che uso ?
La stampa e la lettura del carattere sono corretti, ma durante la pressione del tasto, la visualizzazione sul display balla e alle volte il monitor perde la sincronizzazione con la VGA out, rinfrescando il display "sfarfallio e perdita allineamento dal 5 carattere in poi".
Continuando a premere altri tasti, il problema si presenta in modo random e poi si sistema da solo.
Qui sotto lo sketch che ho usato.
Un Grazie anticipato.
Giuseppe G.
#include <VGA.h>
#include <PS2Keyboard.h>
const int DataPin = 8;
const int IRQpin = 5;
PS2Keyboard keyboard;
char c; //tasto premuto
int col=-1; //posizione colonna
int lin=0; //posizione riga
int colore=-1; //colore carattere
void setup() {
//attivazione VGA out
VGA.begin(320,240,VGA_COLOUR);
//attivazione PS2
keyboard.begin(DataPin, IRQpin);
//cancella schermata
VGA.setPrintWindow(0, 0, 40, 32);
VGA.clearPrintWindow(); //cancella schermo
VGA.drawText("TEST Due VGA Library & PS2 keyboard",24,112,0,-1,0);
delay(5000);
VGA.clearPrintWindow();
VGA.fillRect(0,0,320,240,-1);
VGA.drawRect(1,1,319,239,-240);
//azzera posizione
lin=1; col=1;
//imposta colore
colore=240;
}
void loop() {
if (keyboard.available()) {
// read the next key
c = keyboard.read();
if (c == PS2_ENTER) {lin++;col=-1;}
col++;
if (col > 38) {col=1;lin++;}
if (lin > 28) {
VGA.clearPrintWindow();
VGA.fillRect(0,0,320,240,-1);
VGA.drawRect(1,1,319,239,-240);
col=1;lin=1;
}
}
// text colour
VGA.setInk(colore);
// text background colour
VGA.setPaper(0);
VGA.moveCursor(col, lin);
VGA.println(c);
VGA.waitSync();
}