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 FATFileSystem
CaMove/CaMove.cpp
- Committer:
- rottenegg
- Date:
- 2019-04-18
- Revision:
- 4:34bf3587cf42
- Child:
- 5:860087ff295e
File content as of revision 4:34bf3587cf42:
#include "CaMove.h" #include "FilePaths.h" CaMove::CaMove(PinName pin) : _check(pin) { _check.mode(PullDown); _check.rise(callback(this,&CaMove::intercheck)); _h = 40; _v = 20; _itr = 0; Faceing = Lt; Trig = false; }; CaMove::~CaMove() { }; void CaMove::CMmove(N5110 &lcd, AnalogIn &hoz, AnalogIn &ver) { if (hoz > 0.6f && lcd.getPixel((_h-1),(_v+7)) == 0) { _h = _h - 2; Faceing = Lt; } if (hoz < 0.4f && lcd.getPixel((_h+10),(_v+7)) == 0) { _h = _h + 2; Faceing = Rt; } if (ver > 0.6f && lcd.getPixel((_h+5),(_v-1)) == 0) { _v = _v - 2; Faceing = Fd; } if (ver < 0.4f && lcd.getPixel((_h+5),(_v+14)) == 0) { _v = _v + 2; Faceing = Bd; } if (_itr == 3) { _itr = -1; } _itr++; switch (Faceing) { case Lt: Bitmap::renderBMP(L[_itr],lcd,_h,_v); break; case Rt: Bitmap::renderBMP(R[_itr],lcd,_h,_v); break; case Fd: Bitmap::renderBMP(F[_itr],lcd,_h,_v); break; case Bd: Bitmap::renderBMP(B[_itr],lcd,_h,_v); break; } }; bool CaMove::inscreen() { if (_h >= 84 || (_h + 9) <= 0 || _v <= 0 || (_v + 13) >= 48) { return true; } else { return false; } }; void CaMove::set_region(int xmin, int ymax, int xl, int yl) { intereact.push_back((xmin + xl)); intereact.push_back(xmin); intereact.push_back(ymax); intereact.push_back((ymax - yl)); }; void CaMove::delete_regions() { intereact.clear(); }; void CaMove::intercheck() { Trig = false; if (intereact.size() > 0) { for(int Vvalue = 0; Vvalue < intereact.size(); Vvalue = Vvalue +4) { //if Statements bool LowerH = (_h - 1) <= intereact[Vvalue] && (_h-1) >= intereact[Vvalue + 1]; bool UpperH = (_h + 10) <= intereact[Vvalue] && (_h + 10) >= intereact[Vvalue + 1]; bool MidH = (_h + 5) <= intereact[Vvalue] && (_h + 5) >= intereact[Vvalue + 1]; bool LowerV = (_v - 1) >= intereact[Vvalue + 3] && (_v - 1) <= intereact[Vvalue + 2]; bool UpperV = (_v+14) >= intereact[Vvalue + 3] && (_v + 14) <= intereact[Vvalue + 2]; bool MidV = (_v+7) >= intereact[Vvalue + 3] && (_v + 7) <= intereact[Vvalue + 2]; switch (Faceing) { case Lt: //L if (LowerH && MidV) { Trig = true; tregion = Vvalue / 4; }; break; case Rt: //R if (UpperH && MidV) { Trig = true; tregion = Vvalue / 4; } break; case Fd: //F if (MidH && LowerV) { Trig = true; tregion = Vvalue / 4; } break; case Bd: //B if (MidH && UpperV) { Trig = true; tregion = Vvalue / 4; } break; } } } } bool CaMove::get_Trig() { bool temp = Trig; Trig = false; return temp; };