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/timer1.frt | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 amforth-6.5/avr8/lib/hardware/timer1.frt (limited to 'amforth-6.5/avr8/lib/hardware/timer1.frt') diff --git a/amforth-6.5/avr8/lib/hardware/timer1.frt b/amforth-6.5/avr8/lib/hardware/timer1.frt new file mode 100644 index 0000000..7ab9061 --- /dev/null +++ b/amforth-6.5/avr8/lib/hardware/timer1.frt @@ -0,0 +1,44 @@ +\ TIMER_1 example +\ +\ requires +\ in application master file +\ .set WANT_TIMER_COUNTER_1 = 1 +\ from device.frt +\ TIMER1_OVFAddr +\ provides +\ timer1.tick -- increasing ticker +\ +\ older mcu's may need +\ TCCR1 constant TCCR1B +\ TIMSK constant TIMSK1 + +variable timer1.tick + +: timer1.isr + 1 timer1.tick +! +; + +\ preload for overflow interrupt every 1 ms +\ preload = 65536 - (f_cpu / (prescaler * 1000)) + +: timer1.preload + f_cpu #1000 um/mod nip 8 / negate +; + +: timer1.init ( -- ) + timer1.preload TCNT1 ! + 0 timer1.tick ! + ['] timer1.isr TIMER1_OVFAddr int! +; + +: timer1.start + timer1.init + 0 timer1.tick ! + %00000010 TCCR1B c! \ prescaler 8 + %00000001 TIMSK1 c! \ enable overflow interrupt +; + +: timer1.stop + %00000000 TCCR1B c! \ stop timer + %00000000 TIMSK1 c! \ stop interrupt +; -- cgit v1.2.3