From 67d25d837ac55f28a366c0a3b262e439a6e75fc3 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 19 Aug 2017 12:15:28 +0200 Subject: Add AmForth --- amforth-6.5/avr8/lib/hardware/timer0.frt | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 amforth-6.5/avr8/lib/hardware/timer0.frt (limited to 'amforth-6.5/avr8/lib/hardware/timer0.frt') diff --git a/amforth-6.5/avr8/lib/hardware/timer0.frt b/amforth-6.5/avr8/lib/hardware/timer0.frt new file mode 100644 index 0000000..29670e6 --- /dev/null +++ b/amforth-6.5/avr8/lib/hardware/timer0.frt @@ -0,0 +1,43 @@ +\ TIMER_0 example +\ +\ requires +\ in application master file +\ .set WANT_TIMER_COUNTER_0 = 1 +\ from device.frt +\ TIMER0_OVFAddr +\ provides +\ timer0.tick -- increasing ticker +\ +\ older mcu's may need +TCCR0 constant TCCR0B +TIMSK constant TIMSK0 + +variable timer0.tick + +: timer0.isr + 1 timer0.tick +! +; + +\ preload for overflow interrupt every 1ms +\ preload = 256 - (f_cpu / (prescaler * 1000)) + +: timer0.preload + f_cpu #1000 um/mod nip 64 / 256 - negate +; + +: timer0.init ( -- ) + timer0.preload TCNT0 c! + 0 timer0.tick ! + ['] timer0.isr TIMER0_OVFAddr int! +; + +: timer0.start + timer0.init + %00000011 TCCR0B c! \ prescaler 64 + %00000001 TIMSK0 c! \ enable overflow interrupt +; + +: timer0.stop + %00000000 TCCR0B c! \ stop timer + %00000000 TIMSK0 c! \ stop interrupt +; -- cgit v1.2.3