Demo of low res colour vga video for stm32f3 discovery board
Dependencies: STM32F3-Discovery-minimal
Fork of Space_Invaders_Demo by
bounce.c
- Committer:
- MartinJohnson
- Date:
- 2018-05-16
- Revision:
- 3:93e488fbb8a2
- Child:
- 7:513afc954d6e
- Child:
- 14:3035b3271395
File content as of revision 3:93e488fbb8a2:
#include "stm32f30x.h" #include "sys.h" #include "video.h" #include "gdi.h" #include <string.h> #include <stdio.h> int ballx=100,bally=100; int ballvx=10,ballvy=8; int px=400; void bounce() { int16_t accel[3]; MemsConfig(); vidClearScreen(); gdiSetColour(3); gdiRectangle(0,0,(VID_HSIZE - 1),VID_VSIZE - 1,0); int count=0; int maxcount=0; char string[16]; while(1) { gdiSetColour(3); gdiRectangle(0,0,(VID_HSIZE - 1),VID_VSIZE - 1,0); gdiSetColour(2); gdiCircle(ballx/16,bally/16,4,0); gdiSetColour(7); gdiCircle(ballx/16,bally/16,3,0); gdiCircle(ballx/16,bally/16,2,0); gdiCircle(ballx/16,bally/16,1,0); gdiSetColour(4); gdiRectangle(px-8,VID_VSIZE-5,px+7,VID_VSIZE-2,0); gdiRectangle(px-8,VID_VSIZE-4,px+7,VID_VSIZE-3,0); gdiSetColour(7); sprintf(string,"COUNT=%d",count); gdiDrawTextEx(4,4,(pu8)string,0); sprintf(string,"HIGH=%d",maxcount); gdiDrawTextEx(VID_HSIZE-6*strlen(string)-4,4,(pu8)string,0); // sysDelayMs(5); waitForRefresh(); vidNextBuffer(); ReadAccelerometer( accel ); px=VID_HSIZE/2+accel[1]/100; if(px<9) px=9; if(px>VID_HSIZE-9) px=VID_HSIZE-9; ballx+=ballvx; bally+=ballvy; if(ballx/16>VID_HSIZE - 6 || ballx<80) { ballvx=-ballvx; ballx+=ballvx; } if(bally<80) { ballvy=-ballvy; bally+=ballvy; } if(bally/16>VID_VSIZE - 6) { if(ballx/16>px-12&&ballx/16<px+12) { ballvy=-ballvy-1; bally+=ballvy; ballvx=ballvx+ballx/16-px; count++; if(count>maxcount) maxcount=count; } else { bally=100; ballvy=10; count=0; } } ballvy=ballvy+1; } }