Mirror actuator for RT2 lab

Dependencies:   FastPWM

Committer:
altb2
Date:
Sun May 02 08:55:44 2021 +0000
Revision:
16:28b6bb8a4b7f
Parent:
15:9f32f64eee5b
Final commit 4 students

Who changed what in which revision?

UserRevisionLine numberNew contents of line
altb2 15:9f32f64eee5b 1 /*
altb2 15:9f32f64eee5b 2 * EncoderCounterIndex.cpp
altb2 15:9f32f64eee5b 3 * Copyright (c) 2018, ZHAW
altb2 15:9f32f64eee5b 4 * All rights reserved.
altb2 15:9f32f64eee5b 5 *
altb2 15:9f32f64eee5b 6 * Created on: 13.08.2018
altb2 15:9f32f64eee5b 7 * Author: Marcel Honegger
altb2 15:9f32f64eee5b 8 */
altb2 15:9f32f64eee5b 9
altb2 15:9f32f64eee5b 10 #include <stdint.h>
altb2 15:9f32f64eee5b 11 #include "EncoderCounter.h"
altb2 15:9f32f64eee5b 12 #include "EncoderCounterIndex.h"
altb2 15:9f32f64eee5b 13
altb2 15:9f32f64eee5b 14 using namespace std;
altb2 15:9f32f64eee5b 15
altb2 15:9f32f64eee5b 16 /**
altb2 15:9f32f64eee5b 17 * Creates an object with an interrupt service routine to catch
altb2 15:9f32f64eee5b 18 * the current encoder position when an index pulse is received.
altb2 15:9f32f64eee5b 19 */
altb2 15:9f32f64eee5b 20 EncoderCounterIndex::EncoderCounterIndex(EncoderCounter& encoderCounter, InterruptIn& channelIndex) : encoderCounter(encoderCounter), channelIndex(channelIndex) {
altb2 15:9f32f64eee5b 21
altb2 15:9f32f64eee5b 22 // attach interrupt
altb2 15:9f32f64eee5b 23
altb2 15:9f32f64eee5b 24 channelIndex.rise(callback(this, &EncoderCounterIndex::rise));
altb2 15:9f32f64eee5b 25 }
altb2 15:9f32f64eee5b 26
altb2 15:9f32f64eee5b 27 EncoderCounterIndex::~EncoderCounterIndex() {}
altb2 15:9f32f64eee5b 28
altb2 15:9f32f64eee5b 29 int32_t EncoderCounterIndex::getPositionAtIndexPulse() {
altb2 15:9f32f64eee5b 30
altb2 15:9f32f64eee5b 31 return positionAtIndexPulse;
altb2 15:9f32f64eee5b 32 }
altb2 15:9f32f64eee5b 33
altb2 15:9f32f64eee5b 34 void EncoderCounterIndex::rise() {
altb2 15:9f32f64eee5b 35
altb2 15:9f32f64eee5b 36 positionAtIndexPulse = encoderCounter;
altb2 15:9f32f64eee5b 37 channelIndex.rise(NULL);
altb2 15:9f32f64eee5b 38 }
altb2 15:9f32f64eee5b 39
altb2 15:9f32f64eee5b 40