tim010 tim010
/
GRUPA2-PROJEKAT-ZADATAK3
Beganovic Benjamin Babic Mirhat
Diff: main.cpp
- Revision:
- 0:23bc8a4defc8
diff -r 000000000000 -r 23bc8a4defc8 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon May 19 09:56:25 2014 +0000 @@ -0,0 +1,180 @@ +#include "mbed.h" +#include "N5110.h" + +//Deklaracija LCD objekta +//N5110 lcd(VCC,SCE,RST,D/C,MOSI,SCLK,LED) +N5110 lcd(dp4,dp24,dp23,dp25,dp2,dp6,dp18); + +//Digitalni izlaz za deaktivaciju LED buffera +DigitalOut enable(dp14); + +AnalogIn VRy(dp10); +Ticker pomjeriPlocu; +Ticker loptaTiker; + +int loptax, loptay; +int lijeviy = 1, desniy; +int ugao = 45; + +void IscrtajOkvir() +{ + for(int i = 0; i < 84; i++) { + for(int j = 0; j < 48; j++) { + if(i == 0 || i == 83 || j == 0 || j== 47) { + lcd.setPixel(i,j); + lcd.setXYAddress(0,0); + lcd.refresh(); + } + } + } +} + +void obrisiBlok(int strana, int pozicija) +{ + if(strana == 0) { + for(int i = 0; i < 8; i++) { + lcd.clearPixel(1,pozicija + i); + lcd.clearPixel(2,pozicija + i); + lcd.setXYAddress(0,0); + lcd.refresh(); + } + } else { + for(int i = 0; i < 8; i++) { + lcd.clearPixel(81,pozicija + i + 1); + lcd.clearPixel(82,pozicija + i + 1); + lcd.setXYAddress(0,0); + lcd.refresh(); + } + } + +} + +void iscrtajBlok(int strana, int pozicija) +{ + if(strana == 0) { + for(int i = 0; i < 8; i++) { + lcd.setPixel(1,pozicija + i); + lcd.setPixel(2,pozicija + i); + lcd.setXYAddress(0,0); + lcd.refresh(); + } + } else { + for(int i = 0; i < 8; i++) { + lcd.setPixel(81,pozicija + i + 1); + lcd.setPixel(82,pozicija + i + 1); + lcd.setXYAddress(0,0); + lcd.refresh(); + } + } + + +} + +void iscrtajLopticu(int x, int y) +{ + lcd.setXYAddress(0,0); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + lcd.setPixel(x+i, y+j); + } + } + lcd.refresh(); +} + +void obrisiLopticu(int x, int y) +{ + lcd.setXYAddress(0,0); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + lcd.clearPixel(x+i, y+j); + } + } + lcd.refresh(); +} + + +void pomjerajBlok() +{ + obrisiBlok(0, lijeviy); + if(VRy < 0.4 && lijeviy > 1) { + lijeviy -= 1; + } else if(VRy > 0.6 && lijeviy < 39) + lijeviy += 1; + iscrtajBlok(0, lijeviy); +} + +void pomjerajLopticu() +{ + obrisiLopticu(loptax, loptay); + if(ugao == 0) { + if(loptax != 1 && loptax != 82 && loptay != 1 && loptay != 46) { + if(ugao == 0) + loptax += 2; + else if(ugao == 30) { + loptax += 2; + loptay -= 1; + } else if(ugao == 45) { + loptax += 2; + loptay -= 2; + } else if(ugao == 60) { + loptax += 1; + loptay -= 2; + } else if(ugao == 120) { + loptax -= 1; + loptay -= 2; + } else if(ugao == 150) { + loptax -= 2; + loptay -= 1; + } else if(ugao == 180) { + loptax -= 2; + } else if(ugao == 135) { + loptax -= 2; + loptay -= 2; + } + + else if(ugao == -30) { + loptax += 2; + loptay += 1; + } else if(ugao == -45) { + loptax += 2; + loptay += 2; + } else if(ugao == -60) { + loptax += 1; + loptay += 2; + } else if(ugao == -120) { + loptax -= 1; + loptay += 2; + } else if(ugao == -150) { + loptax -= 2; + loptay += 1; + } else if(ugao == -135) { + loptax -= 2; + loptay += 2; + } + } else { + + + } + + } + + + +} + +int main() +{ + enable=1; + pomjeriPlocu.attach(&pomjerajBlok, 0.07); + loptaTiker.attach(&pomjerajLopticu, 0.07); + // inicijalizacija displeja + lcd.init(); + IscrtajOkvir(); + + iscrtajBlok(1, 10); + + while(1); +} +