Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed N5110 Joystick
main.cpp
- Committer:
- Jenny121
- Date:
- 2019-05-06
- Revision:
- 0:1bf833d24230
File content as of revision 0:1bf833d24230:
#include "mbed.h"
#include "N5110.h"
#include "Joystick.h"
#include <math.h>
#include <stdlib.h>
// rows,cols
// VCC,SCE,RST,D/C,MOSI,SCLK,LED
//N5110 lcd(p7,p8,p9,p10,p11,p13,p21); // LPC1768 - pwr from GPIO
//N5110 lcd(p8,p9,p10,p11,p13,p21); // LPC1768 - powered from +3V3 - JP1 in 2/3 position
N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3
Joystick joystick(PTB10,PTB11,PTC16);
int main()
{
int snakex, snakey;
int foodx,foody;
// first need to initialise display
lcd.init();
joystick.init();
// change set contrast in range 0.0 to 1.0
// 0.4 appears to be a good starting point
lcd.setContrast(0.5);
while(1) {
// these are default settings so not strictly needed
lcd.normalMode(); // normal colour mode
lcd.setBrightness(0.5); // put LED backlight on 50%
lcd.clear();
lcd.drawRect(2,2,75,38,FILL_TRANSPARENT);
Vector2D mapped_coord = joystick.get_mapped_coord();
snakex = 35*mapped_coord.x + 42;
snakey = 23 - 20*mapped_coord.y;
if (joystick.button_pressed() ) {
lcd.drawCircle(35,12,3,FILL_BLACK);
} else {
lcd.drawCircle(snakex,snakey,3,FILL_TRANSPARENT);
lcd.drawRect(snakex-3,snakey-5,3,1,FILL_TRANSPARENT);
lcd.drawRect(snakex+4,snakey-5,3,1,FILL_TRANSPARENT);
lcd.drawRect(snakex-1,snakey-1,1,1,FILL_TRANSPARENT);
lcd.drawRect(snakex+1,snakey-1,1,1,FILL_TRANSPARENT);
lcd.drawRect(snakex,snakey+2,4,1,FILL_TRANSPARENT);
}
//
void food(void);
{
int i,foodx,foody;
srand(time(NULL));
foodx= (rand()%35)+5; // randomise initial
foody= (rand()%28)+3; // randomise initial
for (i = 1; i < 10000;i++)
{
if ( i%20 == 0 ) {
lcd.drawCircle(foodx,foody,1,FILL_BLACK);
}
}
}
void score();
{
int score=0;
int difx;
int dify;
difx=snakex-foodx;
dify=snakey-foody;
if ( difx<3 && dify<3) {
score ++;
}
else{
score =score;
}
char bufferscore[14];
sprintf(bufferscore,"%2d",score);
lcd.printString("score : ", 0,0);
lcd.printString(bufferscore,50,0);
}
lcd.refresh();
wait(0.5);
}
}