NXC C programs, Other Subject

Assignment Help:
A description of each function used in the program.

Theree programs:

/* HiTechnic Experimenter''s Kit Program

Experiment - 6 Reaction Time Measurement

This program measures the time taken to press a button switch after an LED is turned on.

(c) HiTechnic 2009

*/
#include "NXCDefs.h"

#define PROTO_PORT IN_1

int currtime;
int deltatime;
int randomtime;
int inputdata;
int outputdata;
int count;
byte cmndbuf[]; // buffer for outbound I2C command
byte respbuf[]; // buffer for inbound I2C response

/* protoboard I/O map
42,43 - A0 input
44,45 - A1 input
46,47 - A2 input
48,49 - A3 input
4A,4B - A4 input
4C - B inputs
4D - B outputs
4E - B controls
*/

void readdata()
{
ArrayInit(cmndbuf, 0, 2); // set the buffer to hold 2 values
cmndbuf[0] = 0x02; // set write to channel
cmndbuf[1] = 0x4C; // to set read address
count=1; // 1 byte to read
I2CBytes(PROTO_PORT, cmndbuf, count, respbuf); // issue I2C write command and read the byte back
inputdata=respbuf[0]&0x03;
}

void writedata()
{
ArrayInit(cmndbuf, 0, 3); // set the buffer to hold 3 values
cmndbuf[0] = 0x02; // set write to channel
cmndbuf[1] = 0x4D; // to set write address
cmndbuf[2] = outputdata; // to set write data
count=0; // no bytes to read
I2CBytes(PROTO_PORT, cmndbuf, count, respbuf); // issue I2C write command and read the byte back
}

task main()
{
SetSensorLowspeed(PROTO_PORT); // set sensor port 1 to low speed serial (I2C)
Wait(100);

ArrayInit(cmndbuf, 0, 3); // set the buffer to hold 3 values
cmndbuf[0] = 0x02; // set write to channel
cmndbuf[1] = 0x4E; // to set write address
cmndbuf[2] = 0x30; // to write 001111
count=0; // no bytes to read
I2CBytes(PROTO_PORT, cmndbuf, count, respbuf); // issue I2C write command
Wait(100);

while (TRUE)
{
outputdata=0;
writedata();
ClearScreen();
TextOut(20, LCD_LINE2, "running");
randomtime=Random(5000)+5000;
Wait(randomtime);

outputdata=0x10;
writedata();
currtime=CurrentTick();

inputdata=0x00;
while(inputdata!=0x01)
{
readdata();
}
deltatime=CurrentTick()-currtime;
ClearScreen();
NumOut(20, LCD_LINE2, deltatime);

inputdata=0x00;
while(inputdata!=0x03)
{
readdata();
}
}
}

Related Discussions:- NXC C programs

Roman law, Roman law: One of the great gifts of Rome was that of law. Roma...

Roman law: One of the great gifts of Rome was that of law. Roman law played a vital role in the eventual emergence of the West. Of all the vast inheritances of Roman civilization,

Ten most horrible security mistakes by it professionals, The Ten most horri...

The Ten most horrible Security Mistakes by  IT Professionals 1.   by means of unencrypted protocols for organization systems, firewalls, routers, and PKI. 2.   Giving users

Overtaking - maneuvers on highways, Overtaking - Maneuvers on Highways ...

Overtaking - Maneuvers on Highways Overtaking is one of the most risky Maneuvers on Highways. The practice of overtaking maneuvers is to visualize in advance every detail of w

Research Critique Part 1, Ask Prepare a critical analysis of a qualitative ...

Ask Prepare a critical analysis of a qualitative study focusing on the problem statement, study purpose, research question, literature review, and theoretical framework. This can b

Earthquake, what causes them to be hardly hit on the surface of the earth?

what causes them to be hardly hit on the surface of the earth?

#title.utility, what is the relationship between utility, justice, rights, ...

what is the relationship between utility, justice, rights, and caring?

Describe the health effects of ionising radiation, Question 1: (a) What...

Question 1: (a) What are the physical and biological differences between ionising and non ionising radiations? (b) (i) Describe the health effects of ionising radiation.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd