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 QEI_hw SDFileSystem_Sherckuith FATFileSystem rtos
main.cpp
- Committer:
- eembed
- Date:
- 2019-08-01
- Revision:
- 0:d3d96129e821
File content as of revision 0:d3d96129e821:
#include "mbed.h"
#include "qeihw.h"
QEIHW qei_m(QEI_DIRINV_NONE, QEI_SIGNALMODE_QUAD, QEI_CAPMODE_2X, QEI_INVINX_NONE );
int dt_us=150;
float send_m_angle = 0.0;
float inc = 0;
int32_t temp, position = 0;
DigitalIn safety_14(p14);
DigitalIn safety_15(p13);
DigitalOut myled(LED1);
DigitalOut myled3(LED3);
DigitalIn safety_5(p5);
DigitalIn safety_6(p6);
DigitalIn safety_7(p7);
DigitalIn safety_8(p8);
DigitalIn safety_9(p9);
DigitalIn safety_10(p10);
DigitalIn safety_11(p15);
DigitalIn safety_12(p12);
DigitalIn safety_13(p11);
DigitalIn safety_16(p16);
DigitalIn safety_17(p17);
DigitalIn safety_18(p18);
DigitalIn safety_19(p19);
DigitalIn safety_20(p20);
DigitalIn safety_21(p21);
DigitalIn safety_22(p22);
DigitalIn safety_23(p23);
DigitalIn safety_24(p24);
DigitalIn safety_25(p25);
DigitalIn safety_26(p26);
DigitalIn safety_27(p27);
DigitalIn safety_28(p28);
DigitalIn safety_29(p29);
DigitalIn safety_30(p30);
Ethernet eth;
Ticker ticker;
// Encoder Constants
float const encoder_pulses_m = 10000.0;
#define PI 3.141592653
void send(void)
{
inc++;
position = qei_m.GetPosition();
send_m_angle = position * 2.0 * PI / encoder_pulses_m;
eth.write((char *)&send_m_angle, sizeof(send_m_angle));
//eth.write((char *)&inc, sizeof(inc));
myled3 = !myled3;
eth.send();
// wait_us(10);
// return 0;
}
int main()
{
eth.set_link(Ethernet::HalfDuplex100);
wait_ms(1000); // Needed after startup.
if(eth.link())
{
myled = 1;
} else
{
myled = 0;
}
int32_t temp, position = 0;
qei_m.SetDigiFilter(480UL);
qei_m.SetMaxPosition(0xFFFFFFFF);
ticker.attach_us(&send, dt_us);
//ticker.attach_us(&Control_body, dt_us);
/* while(1) {
inc++;
position = qei_m.GetPosition();
send_m_angle = position * 2.0 * PI / encoder_pulses_m;
eth.write((char *)&send_m_angle, sizeof(send_m_angle));
//eth.write((char *)&inc, sizeof(inc));
myled3 = !myled3;
eth.send();
wait_us(10);
} */
}