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

Informative speech, To write an informative speech for presentation on "The...

To write an informative speech for presentation on "The importance of pre-school education in Singapore"

Consumer protection, CONSUME R PROTECTION ' Consume r protection' is...

CONSUME R PROTECTION ' Consume r protection' is an outline of administration regulation which protects the benefit of consumers. For instance, a government may require busin

Overtaking rules - traffic congestion, Overtaking Rules - Traffic Congestio...

Overtaking Rules - Traffic Congestion Overtaking needs an appropriate consideration and efficiency because the driver will use the other lane and increase the speed. The negli

Excel help, Hello i am looking for a MS excel tutor. I dont need online tra...

Hello i am looking for a MS excel tutor. I dont need online training. I just need a person to go to to ask a quick question. My example question will be =Vlookup(B1&"|"&B2,D3:F13,3

Describe what is meant by psychotherapy, Problem: a. Describe what is m...

Problem: a. Describe what is meant by psychotherapy? b. Explain three steps that you would normally follow in a counselling process. c. Describe the core principles of th

HItler, Do you think that Hitler had any mental health issues, if so why? ...

Do you think that Hitler had any mental health issues, if so why? In your study of humanities do you think there are any specific traits which a dictator must have? It is said

Matlab, how to create adjacency matrix for amino acids in matlab ?

how to create adjacency matrix for amino acids in matlab ?

Business Analysis, In the following scenario, state which entities and rela...

In the following scenario, state which entities and relationships are needed to create the following query: What is the average time it takes for suppliers to deliver our orders?

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