PWM Timer0
Ver.1.0.
Felix S.
|
Hauptprogramm (not in Arduino Style!!!) More...
#include <avr/io.h>
#include <stdlib.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "lcd-routines.h"
Go to the source code of this file.
Macros | |
#define | F_CPU 16000000UL |
#define | DEBUGCYCLETIME 5000 |
Functions | |
void | setup () |
void | LCD_WRITE (const char buffer[16]) |
int | main (void) |
ISR (ADC_vect) | |
ISR (TIMER0_COMPA_vect) | |
ISR (TIMER0_OVF_vect) | |
Hauptprogramm (not in Arduino Style!!!)
Ein Potentiometer (zwischen Masse und VCC) auf Pin ADC0 steuert permanent die Helligkeit einer Led an Pin OC0A (PD6). ADC und PWM werden mit einer Aufloesung von 8 bit betrieben, da dies vollkommen ausreichend ist för die Helligkeitssteuerung einer LED. Mit dem Conversion Finnished Interrupt des ADCs wird der wert dem PWM Module übergeben und eine weitere Conversion gestartet.
Es ist nicht möglich dieses Projekt auf unseren Arduino boards zu testen, da der PWM Ausgangspin einer der Display Datenpins ist. Um ein lauffähiges Program zu erhalten müssen in der lcd-routines.h die Defines der Piplay Pins und die Hardware (lcd schield) geändert werden.
wegen Simulation sind die Trace-Meldungen auskommentiert ATTENTION: die Simulation von OC0A scheint nicht zu funktionieren; man sieht den Pin nicht togglen
Definition in file GccApplication1.cpp.