#include<msp430x14x.h>
#include "uart.h"
#include "lcd.h"
#include "portyUart.h"
#include "portyLcd.h"
#define BUTTON1 (P4IN&BIT4)
#define BUTTON2 (P4IN&BIT5)
#define BUTTON3 (P4IN&BIT6)
#define BUTTON4 (P4IN&BIT7)
#define _50ms 500000
#define _5ms 5000000
#define _1ms 506500
char Bufor[32]; // bufor odczytywanych danych
int low=0; // znacznik pocz1teku danych w buforze
int high=0; // zmacznik konca danych w buforze
int licznik=0;
void ustaw_przyciski()
{
P4DIR &= ~BIT4;
P4DIR &= ~BIT5;
P4DIR &= ~BIT6;
P4DIR &= ~BIT7;
}
void dellay (unsigned int n)
{
unsigned int i;
for(i=0;i<n;i++);
}
void main(void)
{
WDTCTL=WDTPW + WDTHOLD; // wy31czenie WDT
InitPortsLcd(); // inicjalizacja portów LCD
InitLCD(); // inicjalizacja LCD
clearDisplay(); // czyszczenie wyowietlacza
initPortyUart(); // inicjalizacja portow UART
initUart(9600); // inicjalizacja UARTa predkooa transmisji 2400 Budoów
_EINT(); // w31czenie przerwan
while(1) // nieskonczona petla
{
while(high != low) // gdy odebrano dane
{
putc(Bufor[low]); // wypisanie danych na wyowietlaczu
UartCharTransmit(Bufor[low]); // wys3anie napisu Tekst do ternimala
UartCharTransmit(Bufor[low]); // wys3anie napisu Tekst do ternimala
low= (++low)%32; // inkrementowanie znacznika pocz1tka danych
}
if(licznik==0 && high!=0 && high%16==0)
{
SEND_CMD(DD_RAM_ADDR2);
licznik=1;
low=0;
high=0;
}
else if(licznik==1 && high!=0 && high%16==0)
{
SEND_CMD(DD_RAM_ADDR);
licznik=0;
low=0;
high=0;
}
else if(!BUTTON1 || !BUTTON2 || !BUTTON3 || !BUTTON4)
{
while (BUTTON1 && BUTTON2 && BUTTON3 && BUTTON4) // oczekiwanie na zwolnienie
{
dellay(_50ms);
}
int wcisniety = 0;
while (!BUTTON1 || !BUTTON2 || !BUTTON3 || !BUTTON4) // oczekiwanie na przycisniecie
{
if (!BUTTON1 && !wcisniety)
{
UartCharTransmit('M');
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
while (!BUTTON1 && !wcisniety)
{
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_50ms);
UartCharTransmit('M');
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
}
}
if (!BUTTON2 && !wcisniety)
{
UartCharTransmit('A');
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
while (!BUTTON2 && !wcisniety)
{
dellay(_50ms);
UartCharTransmit('A');
}
}
if (!BUTTON3 && !wcisniety)
{
UartCharTransmit('C');
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
while (!BUTTON3 && !wcisniety)
{
dellay(_50ms);
UartCharTransmit('C');
}
}
if (!BUTTON4 && !wcisniety)
{
UartCharTransmit('K');
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
dellay(_1ms);
while (!BUTTON4 && !wcisniety)
{
dellay(_50ms);
UartCharTransmit('K');
}
}
dellay(_50ms);
wcisniety = 1;
}
}
}
}
#pragma vector=UART0RX_VECTOR // procedura obs3ugi przerwania UART
__interrupt void usart0_rx (void)
{
{
Bufor[high]=RXBUF0; // wpisanie odebranych danych do bufora
high=(++high)%32; // inkrementowanie znacznika konca danych
}
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}