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
Revision 4:c154ba84b582, committed 2017-12-06
- Comitter:
- TiboSTM
- Date:
- Wed Dec 06 09:46:46 2017 +0000
- Parent:
- 3:7530a7aca1ab
- Commit message:
- met motorfunctie
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Dec 06 07:53:48 2017 +0000
+++ b/main.cpp Wed Dec 06 09:46:46 2017 +0000
@@ -14,6 +14,7 @@
DigitalOut buzzer(PB_0);
AnalogIn analog_value(PA_0);
+
/* Structures to help pack and unpack the 8 CAN data bytes */
typedef struct bytes_64 {
@@ -32,10 +33,24 @@
bytes_64 bytes;
} data_packed;
+int send_id = 513;
+data_packed send_data;
+int reg = 0x31; //Id motorcontroller 0x201 -> 513 //Voor moving average te berekenen
+
+
long map(long x, long in_min, long in_max, long out_min, long out_max) //MAP functie voor verschalingen.
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
+
+
+void MOTOR_Calculate_Power(int speed)
+{
+
+ send_data.data = (speed << 8) + reg; //shiften en optellen
+ can.write(CANMessage(send_id, (char*) &send_data, 3));
+}
+
int main() {
printf("\r\n---Start---\r\n");
@@ -43,11 +58,7 @@
data_packed send_data; //struct for send message
data_packed receive_data; //struct for rcv message
CANMessage msg; //message object for rcv
- int send_id = 513; //Id motorcontroller 0x201 -> 513
- int send_status = 0;
- /* int ADC_Torque_Filter[8];
- int ADC_Torque_Value;
- int i; */ //Voor moving average te berekenen
+ int send_id = 513; //Id motorcontroller 0x201 -> 513 //Voor moving average te berekenen
canEN = 0; //Voor de tranceiver
//send_data.data = 0x0CCD31; //0CCD snelheid motor, 31 register in controller. WERKT
@@ -64,35 +75,12 @@
meas_r = analog_value.read() * 100;
speed = map(meas_r, 0, 100, 0, 0x7FFF); //waarde schommelt niet
- /* for (i = 0; i < 7; i++)
- {
- ADC_Torque_Filter[i] = ADC_Torque_Filter[i+1];
- //wait(0.005); //wacht 5 ms
- }
- ADC_Torque_Filter[7] = speed; //gas waarde berekenen via 8point moving average
- ADC_Torque_Value = (( ADC_Torque_Filter[0]+
- ADC_Torque_Filter[1]+
- ADC_Torque_Filter[2]+
- ADC_Torque_Filter[3]+
- ADC_Torque_Filter[4]+
- ADC_Torque_Filter[5]+
- ADC_Torque_Filter[6]+
- ADC_Torque_Filter[7]
- ) / 8);
- // for (i = 0; i < 7; i++) //data van array leegmaken
- // {
- // ADC_Torque_Filter[i] = 0;
- //wait(0.005);
- //}*/
+
+ MOTOR_Calculate_Power(speed);
-
- send_data.data = (speed << 8) + reg; //shiften en optellen
- send_status = can.write(CANMessage(send_id, (char*) &send_data, 3));
+
- if (send_status == true) {
- //send_data.data = send_data.data + 1;
-
- }
+
/* Receive */
if (can.read(msg)) {