Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<msp430x14x.h>
- #include "lcd.h"
- #include "portyLcd.h"
- #define klocek1 SEND_CMD(0x40);
- #define adrpaletka1 SEND_CMD(0x48);
- #define adrpaletka2 SEND_CMD(0x50);
- #define UP P4IN&BIT4
- #define DOWN P4IN&BIT5
- int blok1=1;
- int blok2=1;
- int blok3=1;
- int blok4=1;
- int kierunek=0; // dol czy gora
- int kierunek2=0; // prawo czy lewo
- int pozycjapal=2;
- int pilka_pozycja_poziom;
- int pilka_pozycja_pion;
- unsigned char pilka_adres;
- char paletka1[8] = {0,0,0,0,3,3,3,3};
- char paletka2[8] = {3,3,3,3,0,0,0,0};
- void bloczki(){
- if(blok1){
- SEND_CMD(DD_RAM_ADDR+14);
- SEND_CHAR(0xFF);
- }
- if(blok2){
- SEND_CMD(DD_RAM_ADDR+15);
- SEND_CHAR(0xFF);
- }
- if(blok3){
- SEND_CMD(DD_RAM_ADDR2+14);
- SEND_CHAR(0xFF);
- }
- if(blok4){
- SEND_CMD(DD_RAM_ADDR2+15);
- SEND_CHAR(0xFF);
- }
- }
- void pal()
- {
- switch(pozycjapal)
- {
- case 1:
- if((DOWN)==0)
- {
- pozycjapal++;
- Delayx100us(100);
- }
- break;
- case 2:
- if((UP)==0)
- {
- pozycjapal--;
- Delayx100us(100);
- }
- if((DOWN)==0)
- {
- pozycjapal++;
- Delayx100us(100);
- }
- break;
- case 3:
- if((UP)==0)
- {
- pozycjapal--;
- Delayx100us(100);
- }
- if((DOWN)==0)
- {
- pozycjapal++;
- Delayx100us(100);
- }
- break;
- case 4:
- if((UP)==0)
- {
- pozycjapal--;
- Delayx100us(100);
- }
- break;
- }
- }
- void rysujpal()
- {
- switch(pozycjapal)
- {
- case 1:
- SEND_CMD(0x80);
- SEND_CHAR(0x02);
- SEND_CMD(0xc0);
- SEND_CHAR(' ');
- break;
- case 2:
- SEND_CMD(0x80);
- SEND_CHAR(0x01);
- SEND_CMD(0xc0);
- SEND_CHAR(' ');
- break;
- case 3:
- SEND_CMD(0x80);
- SEND_CHAR(' ');
- SEND_CMD(0xc0);
- SEND_CHAR(0x02);
- break;
- case 4:
- SEND_CMD(0x80);
- SEND_CHAR(' ');
- SEND_CMD(0xc0);
- SEND_CHAR(0x01);
- break;
- }
- }
- void zbicie(){
- if((DD_RAM_ADDR+14)==pilka_adres){
- kierunek=1;
- kierunek2=1;
- blok1=0;
- pilka_pozycja_pion-=2;
- }
- if((DD_RAM_ADDR+15)==pilka_adres){
- blok2=0;
- kierunek=1;
- kierunek2=1;
- pilka_pozycja_pion-=2;
- }
- if(DD_RAM_ADDR2+14==pilka_adres){
- blok3=0;
- kierunek=1;
- kierunek2=1;
- pilka_pozycja_pion-=2;
- }
- if(DD_RAM_ADDR2+15==pilka_adres)
- {
- blok4=0;
- kierunek=1;
- kierunek2=1;
- pilka_pozycja_pion-=2;
- }
- }
- void pilka(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8){
- int znaczek[8] = {a1,a2,a3,a4,a5,a6,a7,a8};
- SEND_CMD(0x58);
- for (int i = 0;i<8;i++)
- {
- SEND_CHAR(znaczek[i]);
- }
- }
- void odbij_pilke_dol(int kierunek){
- if(kierunek==0){
- if(pilka_pozycja_poziom!=1){
- pilka_pozycja_poziom/=2;
- }else{
- SEND_CMD(pilka_adres);
- SEND_CHAR(' ');
- pilka_adres++;
- pilka_pozycja_poziom=16;
- }
- }
- if(kierunek==1){
- if(pilka_pozycja_poziom!=16){
- pilka_pozycja_poziom*=2;
- }else{
- SEND_CMD(pilka_adres);
- SEND_CHAR(' ');
- pilka_adres--;
- pilka_pozycja_poziom=1;
- }
- }
- int tmp=pilka_pozycja_pion%8;
- switch(tmp){
- case 0:
- SEND_CMD(pilka_adres);
- SEND_CHAR(' ');
- pilka_adres+=0x40;
- pilka(pilka_pozycja_poziom,0,0,0,0,0,0,0);
- pilka_pozycja_pion++;
- break;
- case 1:
- pilka(0,pilka_pozycja_poziom,0,0,0,0,0,0);
- pilka_pozycja_pion++;
- break;
- case 2:
- pilka(0,0,pilka_pozycja_poziom,0,0,0,0,0);
- pilka_pozycja_pion++;
- break;
- case 3:
- pilka(0,0,0,pilka_pozycja_poziom,0,0,0,0);
- pilka_pozycja_pion++;
- break;
- case 4:
- pilka(0,0,0,0,pilka_pozycja_poziom,0,0,0);
- pilka_pozycja_pion++;
- break;
- case 5:
- pilka(0,0,0,0,0,pilka_pozycja_poziom,0,0);
- pilka_pozycja_pion++;
- break;
- case 6:
- pilka(0,0,0,0,0,0,pilka_pozycja_poziom,0);
- pilka_pozycja_pion++;
- break;
- case 7:
- pilka(0,0,0,0,0,0,0,pilka_pozycja_poziom);
- pilka_pozycja_pion++;
- break;
- }
- SEND_CMD(pilka_adres);
- SEND_CHAR(0x03);
- }
- void odbij_pilke_gora(int kierunek){
- if(kierunek==0){
- if(pilka_pozycja_poziom!=1){
- pilka_pozycja_poziom/=2;
- }else{
- SEND_CMD(pilka_adres);
- SEND_CHAR(' ');
- pilka_adres++;
- pilka_pozycja_poziom=16;
- }
- }
- if(kierunek==1){
- if(pilka_pozycja_poziom!=16){
- pilka_pozycja_poziom*=2;
- }else{
- SEND_CMD(pilka_adres);
- SEND_CHAR(' ');
- pilka_adres--;
- pilka_pozycja_poziom=1;
- }
- }
- int tmp=pilka_pozycja_pion%8;
- switch(tmp){
- case 0:
- pilka(pilka_pozycja_poziom,0,0,0,0,0,0,0);
- pilka_pozycja_pion--;
- break;
- case 1:
- pilka(0,pilka_pozycja_poziom,0,0,0,0,0,0);
- pilka_pozycja_pion--;
- break;
- case 2:
- pilka(0,0,pilka_pozycja_poziom,0,0,0,0,0);
- pilka_pozycja_pion--;
- break;
- case 3:
- pilka(0,0,0,pilka_pozycja_poziom,0,0,0,0);
- pilka_pozycja_pion--;
- break;
- case 4:
- pilka(0,0,0,0,pilka_pozycja_poziom,0,0,0);
- pilka_pozycja_pion--;
- break;
- case 5:
- pilka(0,0,0,0,0,pilka_pozycja_poziom,0,0);
- pilka_pozycja_pion--;
- break;
- case 6:
- pilka(0,0,0,0,0,0,pilka_pozycja_poziom,0);
- pilka_pozycja_pion--;
- break;
- case 7:
- SEND_CMD(pilka_adres);
- SEND_CHAR(' ');
- pilka_adres-=0x40;
- pilka(0,0,0,0,0,0,0,pilka_pozycja_poziom);
- pilka_pozycja_pion--;
- break;
- }
- SEND_CMD(pilka_adres);
- SEND_CHAR(0x03);
- }
- int main( void )
- {
- WDTCTL=WDTPW+ WDTHOLD;
- P4DIR &= ~0x10;
- P4DIR &= ~0x20;
- InitPortsLcd();
- InitLCD();
- clearDisplay();
- adrpaletka1;
- for (int i=0;i<8;i++)
- {SEND_CHAR(paletka1[i]);}
- adrpaletka2;
- for (int i=0;i<8;i++)
- {SEND_CHAR(paletka2[i]);}
- pilka_pozycja_poziom = 16;
- pilka_pozycja_pion=3;
- pilka_adres =0x81;
- while(1)
- {
- pal();
- rysujpal();
- bloczki();
- zbicie();
- if(pilka_pozycja_pion==16){
- pilka_pozycja_pion-=2;
- kierunek=1;
- }else if((pilka_adres==0xCD||pilka_adres==0x8D)&& pilka_pozycja_poziom==1){
- pilka_pozycja_pion-=2;
- //TU USTAWIC KAT
- kierunek2=1;
- kierunek=1;
- }else if((pilka_adres==0x81||pilka_adres==0xC1)&& pilka_pozycja_poziom==16){
- pilka_pozycja_pion+=2;
- //TU TEZ
- kierunek2=0;
- kierunek=0;
- }
- switch(kierunek){
- case 0:
- odbij_pilke_dol(kierunek2);
- break;
- case 1:
- odbij_pilke_gora(kierunek2);
- break;
- }
- }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement