Dat vind ik absoluut niet vervelend, mijn kennis van de de Arduino programmeertaal is nog niet ruim te noemen. Ik begin er meer inzicht in te krijgen, van de programmeer voorbeelden kan ik veel leren.
//Checkt of de snelheid aangepast moet worden (optrekken/afremmen) en doet dit//Aanroepen in de loopvoid AamsTrein::update(){ //Kijken of het tijd is om een update te doen if(millis() - this->millisLast > this->vertraging) { this->millisLast = millis(); //opslaan dat we nu een update doen if(setSpeed > curSpeed){ //moeten dus sneller this->curSpeed += 1; } else if(setSpeed < curSpeed){ //moeten langzamer this->curSpeed -= 1; } } //Als er een bup gaande is if(this->bumpFlag){ //Bump afgelopen, terug naar normaal if(millis() - this->lastBump > BumpDuration){ this->setSnelheid(); //Zet de snelheid weer op curSpeed this->bumpFlag = false; } } //Er is geen bump gaande else{ //Check of snelheid laag genoeg is dat er een bump (software PWM) nodig is tegen kleef //en tijd is voor nieuwe bump if(abs(this->curSpeed) < this->MaxBumpSpeed && this->curSpeed != 0 && (millis() - this->lastBump) > BumpInterval){ this->lastBump = millis(); this->setSnelheid((this->curSpeed < 0 ? -255 : 255)); //Zet snelheid op 255, zelfde richting als curSpeed this->bumpFlag = true; } else{ this->setSnelheid(); } }}
De SX-bus wordt Alleen gebruikt voor de processor(80C48C) in de Functie decoder, er is geen koppeling met de outputs 3 tm 14 met de SX-bus, dit loop via een eigen voeding (1 en 2).