From 30e40e40ef8e10c3b7cba6dc5bc89f30da7f15b7 Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Sun, 14 Dec 2008 16:55:23 +0000 Subject: [PATCH] Fixing bug that made the Ethernet library interfere with pins 8 and 9. Adding a delay(1) to the WebServer example to work with browsers. Removing duplicate Print files from Ethernet library. --- hardware/libraries/Ethernet/Print.cpp | 156 ------------------ hardware/libraries/Ethernet/Print.h | 56 ------- .../Ethernet/examples/WebServer/WebServer.pde | 2 + hardware/libraries/Ethernet/utility/spi.h | 2 +- 4 files changed, 3 insertions(+), 213 deletions(-) delete mode 100755 hardware/libraries/Ethernet/Print.cpp delete mode 100755 hardware/libraries/Ethernet/Print.h diff --git a/hardware/libraries/Ethernet/Print.cpp b/hardware/libraries/Ethernet/Print.cpp deleted file mode 100755 index 71595669e..000000000 --- a/hardware/libraries/Ethernet/Print.cpp +++ /dev/null @@ -1,156 +0,0 @@ -/* - HarwareSerial.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - */ - -#include -#include -#include -#include "wiring.h" - -#include "Print.h" - -// Public Methods ////////////////////////////////////////////////////////////// - -void Print::print(uint8_t b) -{ - write(b); -} - -void Print::print(char c) -{ - print((byte) c); -} - -void Print::print(const char c[]) -{ - while (*c) - print(*c++); -} - -void Print::print(int n) -{ - print((long) n); -} - -void Print::print(unsigned int n) -{ - print((unsigned long) n); -} - -void Print::print(long n) -{ - if (n < 0) { - print('-'); - n = -n; - } - printNumber(n, 10); -} - -void Print::print(unsigned long n) -{ - printNumber(n, 10); -} - -void Print::print(long n, int base) -{ - if (base == 0) - print((char) n); - else if (base == 10) - print(n); - else - printNumber(n, base); -} - -void Print::println(void) -{ - print('\r'); - print('\n'); -} - -void Print::println(char c) -{ - print(c); - println(); -} - -void Print::println(const char c[]) -{ - print(c); - println(); -} - -void Print::println(uint8_t b) -{ - print(b); - println(); -} - -void Print::println(int n) -{ - print(n); - println(); -} - -void Print::println(unsigned int n) -{ - print(n); - println(); -} - -void Print::println(long n) -{ - print(n); - println(); -} - -void Print::println(unsigned long n) -{ - print(n); - println(); -} - -void Print::println(long n, int base) -{ - print(n, base); - println(); -} - -// Private Methods ///////////////////////////////////////////////////////////// - -void Print::printNumber(unsigned long n, uint8_t base) -{ - unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars. - unsigned long i = 0; - - if (n == 0) { - print('0'); - return; - } - - while (n > 0) { - buf[i++] = n % base; - n /= base; - } - - for (; i > 0; i--) - print((char) (buf[i - 1] < 10 ? - '0' + buf[i - 1] : - 'A' + buf[i - 1] - 10)); -} diff --git a/hardware/libraries/Ethernet/Print.h b/hardware/libraries/Ethernet/Print.h deleted file mode 100755 index f3ec80918..000000000 --- a/hardware/libraries/Ethernet/Print.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - HardwareSerial.h - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Print_h -#define Print_h - -#include - -#define DEC 10 -#define HEX 16 -#define OCT 8 -#define BIN 2 -#define BYTE 0 - -class Print -{ - private: - void printNumber(unsigned long, uint8_t); - public: - virtual void write(uint8_t); - void print(char); - void print(const char[]); - void print(uint8_t); - void print(int); - void print(unsigned int); - void print(long); - void print(unsigned long); - void print(long, int); - void println(void); - void println(char); - void println(const char[]); - void println(uint8_t); - void println(int); - void println(unsigned int); - void println(long); - void println(unsigned long); - void println(long, int); -}; - -#endif diff --git a/hardware/libraries/Ethernet/examples/WebServer/WebServer.pde b/hardware/libraries/Ethernet/examples/WebServer/WebServer.pde index c14860f89..b337a8ec3 100644 --- a/hardware/libraries/Ethernet/examples/WebServer/WebServer.pde +++ b/hardware/libraries/Ethernet/examples/WebServer/WebServer.pde @@ -54,6 +54,8 @@ void loop() } } } + // give the web browser time to receive the data + delay(1); client.stop(); } } diff --git a/hardware/libraries/Ethernet/utility/spi.h b/hardware/libraries/Ethernet/utility/spi.h index 0bb30ba80..000705d72 100755 --- a/hardware/libraries/Ethernet/utility/spi.h +++ b/hardware/libraries/Ethernet/utility/spi.h @@ -37,7 +37,7 @@ // PB4(MISO), PB3(MOSI), PB5(SCK), PB2(/SS) // CS=1, waiting for SPI start // SPI mode 0, 4MHz #define SPI0_Init() DDRB |= SPI0_SS_BIT|SPI0_SCLK_BIT|SPI0_MOSI_BIT;\ - PORTB = SPI0_SS_BIT;\ + PORTB |= SPI0_SS_BIT; PORTB &= ~(SPI0_SCLK_BIT|SPI0_MOSI_BIT);\ SPCR = 0x50 //-----------------------------------------------------------------------------