Changeset 224 for rtos_arduino/trunk/arduino_lib/libraries/Firmata/examples/OldStandardFirmata/OldStandardFirmata.ino
- Timestamp:
- Apr 30, 2016, 11:29:25 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rtos_arduino/trunk/arduino_lib/libraries/Firmata/examples/OldStandardFirmata/OldStandardFirmata.ino
r136 r224 56 56 void outputPort(byte portNumber, byte portValue) 57 57 { 58 portValue = portValue & ~ portStatus[portNumber];58 portValue = portValue & ~ portStatus[portNumber]; 59 59 if (previousPINs[portNumber] != portValue) { 60 60 Firmata.sendDigitalPort(portNumber, portValue); … … 73 73 if (reportPINs[i]) { 74 74 switch (i) { 75 case 0: outputPort(0, PIND & ~ B00000011); break; // ignore Rx/Tx 0/175 case 0: outputPort(0, PIND & ~ B00000011); break; // ignore Rx/Tx 0/1 76 76 case 1: outputPort(1, PINB); break; 77 77 case 2: outputPort(2, PINC); break; … … 105 105 case INPUT: 106 106 pinMode(pin, INPUT); 107 portStatus[port] = portStatus[port] & ~ (1 << (pin - offset));107 portStatus[port] = portStatus[port] & ~ (1 << (pin - offset)); 108 108 break; 109 109 case OUTPUT: … … 113 113 portStatus[port] = portStatus[port] | (1 << (pin - offset)); 114 114 break; 115 115 //case ANALOG: // TODO figure this out 116 116 default: 117 117 Firmata.sendString(""); … … 123 123 void analogWriteCallback(byte pin, int value) 124 124 { 125 setPinModeCallback(pin, P WM);125 setPinModeCallback(pin, PIN_MODE_PWM); 126 126 analogWrite(pin, value); 127 127 } … … 132 132 case 0: // pins 2-7 (don't change Rx/Tx, pins 0 and 1) 133 133 // 0xFF03 == B1111111100000011 0x03 == B00000011 134 PORTD = (value & ~ 0xFF03) | (PORTD & 0x03);134 PORTD = (value & ~ 0xFF03) | (PORTD & 0x03); 135 135 break; 136 136 case 1: // pins 8-13 (14,15 are disabled for the crystal) … … 151 151 { 152 152 if (value == 0) { 153 analogInputsToReport = analogInputsToReport & ~ (1 << pin);153 analogInputsToReport = analogInputsToReport & ~ (1 << pin); 154 154 } 155 155 else { // everything but 0 enables reporting of that pin … … 203 203 * host computer, since once in the loop(), this firmware will only send 204 204 * digital data on change. */ 205 if (reportPINs[0]) outputPort(0, PIND & ~ B00000011); // ignore Rx/Tx 0/1205 if (reportPINs[0]) outputPort(0, PIND & ~ B00000011); // ignore Rx/Tx 0/1 206 206 if (reportPINs[1]) outputPort(1, PINB); 207 207 if (reportPINs[2]) outputPort(2, PINC);
Note:
See TracChangeset
for help on using the changeset viewer.