123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- #include "u8g.h"
- #if defined(ARDUINO)
- # if ARDUINO < 100
- # include <WProgram.h>
- # else
- # include <Arduino.h>
- # endif
- # if defined(__AVR__)
- # define USE_AVR_DELAY
- # elif defined(__PIC32MX)
- # define USE_PIC32_DELAY
- # elif defined(__arm__)
- # define USE_ARDUINO_DELAY
- # else
- # define USE_ARDUINO_DELAY
- # endif
- #elif defined(U8G_RASPBERRY_PI)
- # define USE_RASPBERRYPI_DELAY
- #elif defined(__AVR__)
- # define USE_AVR_DELAY
- #elif defined(__18CXX)
- # define USE_PIC18_DELAY
- #elif defined(__arm__)
- #else
- # define USE_DUMMY_DELAY
- #endif
- #if defined (USE_RASPBERRYPI_DELAY)
- #include <wiringPi.h>
- void u8g_Delay(uint16_t val) {
-
-
- delayMicroseconds((uint32_t)val*(uint32_t)1000);
- }
- void u8g_MicroDelay(void)
- {
- usleep(1);
- }
- void u8g_10MicroDelay(void)
- {
- usleep(10);
- }
- #endif
- #if defined(USE_AVR_DELAY)
- #include <avr/interrupt.h>
- #include <avr/io.h>
- #include <util/delay.h>
- void u8g_Delay(uint16_t val)
- {
-
- while( val != 0 )
- {
- _delay_loop_2( (F_CPU / 4000 ) -2);
- val--;
- }
- }
- void u8g_MicroDelay(void)
- {
- #if (F_CPU / 4000000 ) > 0
- _delay_loop_2( (F_CPU / 4000000 ) );
- #endif
- }
- void u8g_10MicroDelay(void)
- {
- #if (F_CPU / 400000 ) > 0
- _delay_loop_2( (F_CPU / 400000 ) );
- #endif
- }
- #endif
- #if defined(USE_PIC18_DELAY)
- #include <delays.h>
- #define GetSystemClock() (64000000ul)
- #define GetInstructionClock() (GetSystemClock()/4)
- void u8g_Delay(uint16_t val)
- {
- }
- void u8g_MicroDelay(void)
- {
-
- }
- void u8g_10MicroDelay(void)
- {
-
- }
- #endif
- #if defined(USE_ARDUINO_DELAY)
- void u8g_Delay(uint16_t val)
- {
- #if defined(__arm__)
- delayMicroseconds((uint32_t)val*(uint32_t)1000);
- #else
- delay(val);
- #endif
- }
- void u8g_MicroDelay(void)
- {
- delayMicroseconds(1);
- }
- void u8g_10MicroDelay(void)
- {
- delayMicroseconds(10);
- }
- #endif
- #if defined(USE_PIC32_DELAY)
- #define CPU_COUNTS_PER_SECOND (F_CPU/2UL)
- #define TICKS_PER_MILLISECOND (CPU_COUNTS_PER_SECOND/1000UL)
- #include "plib.h"
- void u8g_Delay(uint16_t val)
- {
- uint32_t d;
- uint32_t s;
- d = val;
- d *= TICKS_PER_MILLISECOND;
- s = ReadCoreTimer();
- while ( (uint32_t)(ReadCoreTimer() - s) < d )
- ;
- }
- void u8g_MicroDelay(void)
- {
- uint32_t d;
- uint32_t s;
- d = TICKS_PER_MILLISECOND/1000;
- s = ReadCoreTimer();
- while ( (uint32_t)(ReadCoreTimer() - s) < d )
- ;
- }
- void u8g_10MicroDelay(void)
- {
- uint32_t d;
- uint32_t s;
- d = TICKS_PER_MILLISECOND/100;
- s = ReadCoreTimer();
- while ( (uint32_t)(ReadCoreTimer() - s) < d )
- ;
- }
- #endif
- #if defined(USE_DUMMY_DELAY)
- void u8g_Delay(uint16_t val)
- {
-
- }
- void u8g_MicroDelay(void)
- {
- }
- void u8g_10MicroDelay(void)
- {
- }
- #endif
|