Gabriel Silva / Mbed OS LOG
Committer:
glsfacom
Date:
Sun Oct 11 09:39:59 2020 -0400
Revision:
5:c2811b726e63
multiple tmp and mlx, mlx i2c not responding

Who changed what in which revision?

UserRevisionLine numberNew contents of line
glsfacom 5:c2811b726e63 1 /*
glsfacom 5:c2811b726e63 2 Copyright (c) 2010 Andy Kirkham
glsfacom 5:c2811b726e63 3
glsfacom 5:c2811b726e63 4 Permission is hereby granted, free of charge, to any person obtaining a copy
glsfacom 5:c2811b726e63 5 of this software and associated documentation files (the "Software"), to deal
glsfacom 5:c2811b726e63 6 in the Software without restriction, including without limitation the rights
glsfacom 5:c2811b726e63 7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
glsfacom 5:c2811b726e63 8 copies of the Software, and to permit persons to whom the Software is
glsfacom 5:c2811b726e63 9 furnished to do so, subject to the following conditions:
glsfacom 5:c2811b726e63 10
glsfacom 5:c2811b726e63 11 The above copyright notice and this permission notice shall be included in
glsfacom 5:c2811b726e63 12 all copies or substantial portions of the Software.
glsfacom 5:c2811b726e63 13
glsfacom 5:c2811b726e63 14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
glsfacom 5:c2811b726e63 15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
glsfacom 5:c2811b726e63 16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
glsfacom 5:c2811b726e63 17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
glsfacom 5:c2811b726e63 18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
glsfacom 5:c2811b726e63 19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
glsfacom 5:c2811b726e63 20 THE SOFTWARE.
glsfacom 5:c2811b726e63 21 */
glsfacom 5:c2811b726e63 22
glsfacom 5:c2811b726e63 23 #ifdef PINDETECT_EXAMPLE_COMPILE
glsfacom 5:c2811b726e63 24
glsfacom 5:c2811b726e63 25 #include "mbed.h"
glsfacom 5:c2811b726e63 26 #include "PinDetect.h"
glsfacom 5:c2811b726e63 27
glsfacom 5:c2811b726e63 28 PinDetect pin ( p21 );
glsfacom 5:c2811b726e63 29 DigitalOut led1( LED1 );
glsfacom 5:c2811b726e63 30 DigitalOut led2( LED2 );
glsfacom 5:c2811b726e63 31 DigitalOut led3( LED3 );
glsfacom 5:c2811b726e63 32 DigitalOut led4( LED4 );
glsfacom 5:c2811b726e63 33
glsfacom 5:c2811b726e63 34 /*
glsfacom 5:c2811b726e63 35 * Note, the PinDetect can be defined thus:-
glsfacom 5:c2811b726e63 36 * PinDetect pin( p21, PullDown );
glsfacom 5:c2811b726e63 37 * This allows you to specify the DigitalIn pinmode
glsfacom 5:c2811b726e63 38 * when you create the PinDetect object. This means
glsfacom 5:c2811b726e63 39 * using pin.mode() later is then no longer required.
glsfacom 5:c2811b726e63 40 */
glsfacom 5:c2811b726e63 41
glsfacom 5:c2811b726e63 42 // C function callbacks follow.
glsfacom 5:c2811b726e63 43
glsfacom 5:c2811b726e63 44 void keyPressed( void ) {
glsfacom 5:c2811b726e63 45 led2 = 1;
glsfacom 5:c2811b726e63 46 led3 = 0;
glsfacom 5:c2811b726e63 47 led4 = 0;
glsfacom 5:c2811b726e63 48 }
glsfacom 5:c2811b726e63 49
glsfacom 5:c2811b726e63 50 void keyReleased( void ) {
glsfacom 5:c2811b726e63 51 led2 = 0;
glsfacom 5:c2811b726e63 52 led3 = 0;
glsfacom 5:c2811b726e63 53 led4 = 0;
glsfacom 5:c2811b726e63 54 }
glsfacom 5:c2811b726e63 55
glsfacom 5:c2811b726e63 56 void keyPressedHeld( void ) {
glsfacom 5:c2811b726e63 57 led3 = 1;
glsfacom 5:c2811b726e63 58 }
glsfacom 5:c2811b726e63 59
glsfacom 5:c2811b726e63 60 void keyReleasedHeld( void ) {
glsfacom 5:c2811b726e63 61 led4 = 1;
glsfacom 5:c2811b726e63 62 }
glsfacom 5:c2811b726e63 63
glsfacom 5:c2811b726e63 64 // The main program.
glsfacom 5:c2811b726e63 65
glsfacom 5:c2811b726e63 66 int main() {
glsfacom 5:c2811b726e63 67
glsfacom 5:c2811b726e63 68 pin.mode( PullDown );
glsfacom 5:c2811b726e63 69 pin.attach_asserted( &keyPressed );
glsfacom 5:c2811b726e63 70 pin.attach_deasserted( &keyReleased );
glsfacom 5:c2811b726e63 71 pin.attach_asserted_held( &keyPressedHeld );
glsfacom 5:c2811b726e63 72
glsfacom 5:c2811b726e63 73 // This callback will often be of little use as it's
glsfacom 5:c2811b726e63 74 // called after every assertion/deassertion. However,
glsfacom 5:c2811b726e63 75 // it's provided for completeness. You may find a use
glsfacom 5:c2811b726e63 76 // for it. If not, just don't attach a callback and it
glsfacom 5:c2811b726e63 77 // will not activate.
glsfacom 5:c2811b726e63 78 pin.attach_deasserted_held( &keyReleasedHeld );
glsfacom 5:c2811b726e63 79
glsfacom 5:c2811b726e63 80 // You can define how many continuous samples must be
glsfacom 5:c2811b726e63 81 // asserted before the attach_asserted() function is called.
glsfacom 5:c2811b726e63 82 // pin.setSamplesTillAssert( 10 );
glsfacom 5:c2811b726e63 83 // This would mean 10 * 20ms debounce time = 200ms.
glsfacom 5:c2811b726e63 84
glsfacom 5:c2811b726e63 85 // You can define how many continuous samples must be
glsfacom 5:c2811b726e63 86 // asserted before the attach_asserted_held() function is called.
glsfacom 5:c2811b726e63 87 // pin.setSamplesTillHeld( 200 );
glsfacom 5:c2811b726e63 88 // This would mean 200 * 20ms debounce time = 2seconds.
glsfacom 5:c2811b726e63 89
glsfacom 5:c2811b726e63 90 // By default, "asserted" assumes the pin going high from 0volts to 5volts
glsfacom 5:c2811b726e63 91 // and deasserted assumes going from 5volts to 0volts. You can invert this
glsfacom 5:c2811b726e63 92 // logic so that going to 0volts is asserted and going to 5volts is deasserted
glsfacom 5:c2811b726e63 93 // using this setup function:-
glsfacom 5:c2811b726e63 94 // pin.setAssertValue( 0 );
glsfacom 5:c2811b726e63 95
glsfacom 5:c2811b726e63 96 // Sampling does NOT begin until you set the frequency. So, until
glsfacom 5:c2811b726e63 97 // you call this function NO callbacks will be made. With no arguments
glsfacom 5:c2811b726e63 98 // passed the default is 20000 microseconds (20ms). Specifiy the sampling
glsfacom 5:c2811b726e63 99 // period in microseconds if you want a different value to 20ms.
glsfacom 5:c2811b726e63 100 // For example, for a sampling period of 10ms do:-
glsfacom 5:c2811b726e63 101 // pin.setSampleFrequency( 10000 );
glsfacom 5:c2811b726e63 102 // Note, if you change the sampling frequency you will probably also
glsfacom 5:c2811b726e63 103 // want to change the number of samples till assert and held as show
glsfacom 5:c2811b726e63 104 // above.
glsfacom 5:c2811b726e63 105 pin.setSampleFrequency(); // Defaults to 20ms.
glsfacom 5:c2811b726e63 106
glsfacom 5:c2811b726e63 107 while( 1 ) {
glsfacom 5:c2811b726e63 108 led1 = !led1;
glsfacom 5:c2811b726e63 109 wait( 0.2 );
glsfacom 5:c2811b726e63 110 }
glsfacom 5:c2811b726e63 111 }
glsfacom 5:c2811b726e63 112
glsfacom 5:c2811b726e63 113 #endif