|
#pragma config(Sensor, S1, HTSMUX, sensorI2CCustom) //*!!Code automatically generated by 'ROBOTC' configuration wizard !!*// /* * $Id: lego-sound-SMUX-test1.c 133 2013-03-10 15:15:38Z xander $ */ /** * lego-sound.h provides an API for the Lego sound sensor. This program * demonstrates how to use that API. * * Changelog: * - 0.1: Initial release * - 0.2: More comments * * License: You may use this code as you wish, provided you give credit where it's due. * * THIS CODE WILL ONLY WORK WITH ROBOTC VERSION 3.59 AND HIGHER. * Xander Soldaat (xander_at_botbench.com) * 25 November 2009 * version 0.2 */ #include "drivers/hitechnic-sensormux.h" #include "drivers/lego-sound.h" // The sensor is connected to the first port // of the SMUX which is connected to the NXT port S1. // To access that sensor, we must use msensor_S1_1. If the sensor // were connected to 3rd port of the SMUX connected to the NXT port S4, // we would use msensor_S4_3 // Give the sensor a nice easy to use name const tMUXSensor LEGOSND = msensor_S1_1; task main () { int soundraw = 0; int soundnorm = 0; bool dba = false; nNxtButtonTask = -2; nxtDisplayCenteredTextLine(0, "Lego"); nxtDisplayCenteredBigTextLine(1, "Sound"); nxtDisplayCenteredTextLine(3, "SMUX Test"); nxtDisplayCenteredTextLine(5, "Connect SMUX to"); nxtDisplayCenteredTextLine(6, "S1 and snd sensor"); nxtDisplayCenteredTextLine(7, "to SMUX Port 1"); wait1Msec(2000); eraseDisplay(); nxtDisplayTextLine(0, "Lego Sound Sensor"); nxtDisplayTextLine(6, "[enter] to switch"); nxtDisplayTextLine(7, "dB and dBA mode"); // Set the sensor to dB mode. SNDsetDB(LEGOSND); nxtDisplayCenteredTextLine(1, "dB mode"); while(true) { // The enter button has been pressed, switch // to the other mode if (nNxtButtonPressed == kEnterButton) { dba = !dba; if (!dba) { // set the sensor to DB mode SNDsetDB(LEGOSND); nxtDisplayCenteredTextLine(1, "dB mode"); } else { // set the sensor to dBA mode. SNDsetDBA(LEGOSND); nxtDisplayCenteredTextLine(1, "dBA mode"); } // wait 500ms to debounce the switch wait1Msec(500); } // Read the normalised value of the sensor soundraw = SNDreadRaw(LEGOSND); // Display the raw and normalised values soundnorm = SNDreadNorm(LEGOSND); // display the info from the sensor nxtDisplayTextLine(3, "Raw: %3d", soundraw); nxtDisplayTextLine(4, "Norm: %3d", soundnorm); wait10Msec(50); } } /* * $Id: lego-sound-SMUX-test1.c 133 2013-03-10 15:15:38Z xander $ */