GithubHelp home page GithubHelp logo

niwantha33 / arduino-1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dc42/arduino

0.0 2.0 1.0 324 KB

Reusable modules, drivers and patches for the Arduino platform

Arduino 17.35% C++ 82.65%

arduino-1's Introduction

arduino

This repository contains reusable modules, drivers and patches for the Arduino platform. Here is a description of the projects:

Scheduler

This is a cooperative multi-tasking scheduler for the Arduino. Conventionally, if you need to control and/or monitor several devices concurrently, then you need to do this in the Arduino loop() function. The code for all the devices is mixed up, making it difficult to understand and hard to maintain. In contrast, if you use the task scheduler, you can write the code for each device separately, then just create a task for each device to run its code.

Limitations of the task scheduler:

  1. The scheduler is based on a regular tick (normally at 1ms intervals), so any time intervals between things happening must either be much less that 1ms, or must be multiples of 1ms, or must be specially programmed using one of the hardware timers.

  2. You must write the code for each task so that it executes in much less than 1ms before it returns, so that other tasks can run. Anything that takes longer must be broke down into smaller steps.

  3. You cannot call any library functions that may take more than a millisecond to execute. Library functions that wait for things to complete need to be rewritten to use the task scheduler instead.

Lcd7920

This is a simple library to drive 128x64 graphic LCDs based on the ST7920 chip in serial mode, thereby using only two Arduino pins (preferably the MOSI and SCLK pins to get best speed). It is smaller but less comprehensive than U8glib.

PushButton

This is a class to read and debounce a push button. It can be used in conjunction with the task scheduler, or without if you arrange for your code to call the poll() function at regular intervals.

RotaryEncoder

This is a class to read rotary encoders, allowing for contact bounce and variation in the detent position. It can be used with or without the task scheduler. To maintain responsiveness, the poll() function must be called at intervals of 1ms or 2ms.

arduino-1's People

Contributors

dc42 avatar

Watchers

James Cloos avatar Niwantha Nadeesh Meepage avatar

Forkers

nodemcu-zero

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.