Modules | Enumerations
Current

Functions which handle the motor current. More...

Modules

 Advanced informations
 

Enumerations

enum  eCurrentGet
 clusters select values for reading the motor currents More...
 

Request Funktions

void currents_request (eRequestType request)
 Requests new data from the motor currents. More...
 
uint8_t currents_received (void)
 Indicates if new data for the data block sMD_SensCurrent was received. More...
 
uint8_t currents_changed (void)
 Indicates if new data changed the data block sMD_SensCurrent. More...
 

Access Funktions

uint16_t currents_get (eCurrentGet select)
 Returns the last stored current of the selected motor. More...
 

Detailed Description

Functions which handle the motor current.

The motor currents are part of the driving module. All actions, like reading their value, involve internal TWI communication. This may take some milliseconds (delay time).

example

/*******************************************************************************
* examples/motorSimple.c *
* ====================== *
* *
* Version: 1.0.5 *
* Date : 07.11.17 *
* Author : Peter Weissig *
*******************************************************************************/
//*********************************<Included files>*****************************
#include <tucbot/tucbot.h>
//*********************************<Methods>************************************
void testMotor(void);
int main(void);
//*********************************[testMotor]**********************************
void testMotor(void) {
int8_t speed = 0;
lcdclr();
lcdstr_p(PSTR("Motor ####%"));
lcdxy(0,1);
lcdstr_p(PSTR("####mA ####mA"));
while (1) {
mdelay(100);
if (speed > -100) {
speed-= 5;
lcdxy(11,0);
int16tostr(lcdout,speed , 4);
}
} else if (buttons_get(kButtonRight)) {
mdelay(100);
if (speed < 100) {
speed+= 5;
lcdxy(11,0);
int16tostr(lcdout,speed , 4);
}
}
}
}
}
//*********************************[main]***************************************
int main (void) {
init_tucbot(0xFF);
testMotor();
return (0);
}

Enumeration Type Documentation

◆ eCurrentGet

clusters select values for reading the motor currents

See also
currents_get()
Enumerator
kCurrentGetLeft 

constants (1): left motor current

kCurrentGetRight 

constants (2): right motor current

Function Documentation

◆ currents_changed()

uint8_t currents_changed ( void  )

Indicates if new data changed the data block sMD_SensCurrent.

The return value is boolean.

Returns
8-bit unsigned integer which is a boolean value
See also
currents_received(), currents_request() and currents_get()
Examples
motorComplex.c, and motorSimple.c.

◆ currents_get()

uint16_t currents_get ( eCurrentGet  select)

Returns the last stored current of the selected motor.

This function relies on the internal data block sMD_SensCurrent - for new data use currents_request().

Parameters
selectvalue of the selected motor - see also eCurrentGet
Returns
16-bit unsigned integer (0..1023)
The current is measured in 9.3 milliampers units. E.g. a value of 54 relates to 502 mA.
See also
currents_request(), currents_received() and currents_changed()
Examples
motorComplex.c, and motorSimple.c.

◆ currents_received()

uint8_t currents_received ( void  )

Indicates if new data for the data block sMD_SensCurrent was received.

The return value is boolean.

Returns
8-bit unsigned integer which is a boolean value
See also
currents_changed(), currents_request() and currents_get()

◆ currents_request()

void currents_request ( eRequestType  request)

Requests new data from the motor currents.

For details on the request schema see The general request.

Involved data blocks are:
sMD_SensCurrent

See also
currents_get(), currents_received() and currents_changed()
Examples
motorComplex.c, and motorSimple.c.
leds_set
void leds_set(eLedMask bitmask, uint8_t bool)
Sets the selected leds on or off.
buttons_get
eButtonMask buttons_get(eButtonMask bitmask)
Returns the last stored value of the selected buttons.
kButtonMiddle
@ kButtonMiddle
bit mask (0x08): middle button
Definition: buttons.h:35
kCurrentGetRight
@ kCurrentGetRight
constants (2): right motor current
Definition: currents.h:45
kModeStudent
@ kModeStudent
constant (1): robot is in student mode
Definition: mode.h:31
kCurrentGetLeft
@ kCurrentGetLeft
constants (1): left motor current
Definition: currents.h:43
kMotorSetAll
@ kMotorSetAll
bit mask (0x03): both motors
Definition: motors.h:47
kLedOn
@ kLedOn
constant (0xFF): turn leds on
Definition: leds.h:63
kLedRight
@ kLedRight
bit mask (0x04): right led
Definition: leds.h:46
currents_get
uint16_t currents_get(eCurrentGet select)
Returns the last stored current of the selected motor.
kButtonRight
@ kButtonRight
bit mask (0x10): right button
Definition: buttons.h:37
buttons_request
void buttons_request(eRequestType request)
Requests new data from the buttons.
int16tostr
void int16tostr(void *out, int16_t number, uint8_t digits)
Converts an integer to a string and passes it to an output function.
currents_changed
uint8_t currents_changed(void)
Indicates if new data changed the data block sMD_SensCurrent.
kRequestContinuous
@ kRequestContinuous
constant (3): request continuous updates
Definition: update.h:37
kLedMiddle
@ kLedMiddle
bit mask (0x08): middle led
Definition: leds.h:44
kLedOff
@ kLedOff
constant (0x00): turn leds off
Definition: leds.h:61
lcdclr
void lcdclr(void)
Clears the display.
lcdxy
void lcdxy(uint8_t x, uint8_t y)
Moves the cursor to a postion on the display.
mode_set
void mode_set(eMode mode)
Sets the mode of the TUC-Bot.
motors_set
void motors_set(eMotorSetMask select, int8_t power)
Sets the motor power of the selected motor(s).
lcdstr_p
void lcdstr_p(const char *send_data)
Writes a string located in the flash to the display.
lcdout
void lcdout(uint8_t data)
Writes one byte to the display.
init_tucbot
void init_tucbot(uint8_t enable_interrupts)
Initiates the TUC-Bot.
mdelay
void mdelay(uint16_t mseconds)
Waits for the given time in milliseconds.
currents_request
void currents_request(eRequestType request)
Requests new data from the motor currents.