' ====================================================================== ' ' File...... chaser.pbas ' Purpose... Zig-Zag LED chaser for Propeller Demo Board ' Author.... Jon McPhalen ' E-mail.... jon@jonmcphalen.com ' Started... ' Updated... ' ' ====================================================================== ' ---------------------------------------------------------------------- ' Program Description ' ---------------------------------------------------------------------- '{$DEFINE CLK_80} ' ---------------------------------------------------------------------- ' Device Settings ' ---------------------------------------------------------------------- DEVICE P8X32A, XTAL1, PLL16X '{$IFDEF CLK_100} XIN 6_250_000 '{$ELSE} XIN 5_000_000 ' for PASD '{$ENDIF} ' ---------------------------------------------------------------------- ' Constants ' ---------------------------------------------------------------------- LED_DELAY CON 75 ' 75ms LED hold ' ---------------------------------------------------------------------- ' I/O Pins ' ---------------------------------------------------------------------- LEDs PIN 23..16 LOW ' ---------------------------------------------------------------------- ' Shared (hub) Variables (Byte, Word, Long) ' ---------------------------------------------------------------------- ' ---------------------------------------------------------------------- ' User Data (DATA, WDATA, LDATA, FILE) ' ---------------------------------------------------------------------- BitMask DATA %0000_0001, %0000_0010, %0000_0100, %0000_1000 DATA %0001_0000, %0010_0000, %0100_0000, %1000_0000 ' ---------------------------------------------------------------------- ' TASK Definitions ' ---------------------------------------------------------------------- ' ---------------------------------------------------------------------- ' Cog Variables (Long only) ' ---------------------------------------------------------------------- idx VAR Long maddr VAR Long ' address of mask data mask VAR Long ' ---------------------------------------------------------------------- ' SUB/FUNC Definitions ' ---------------------------------------------------------------------- DELAY_MS SUB 1, 1 ' shell for PAUSE ' ====================================================================== PROGRAM Start PASD ' ====================================================================== Start: LEDs = %0000_0000 Main: FOR idx = 0 TO 6 RDBYTE BitMask(idx), mask LEDs = mask DELAY_MS LED_DELAY BREAK ' for PASD NEXT FOR idx = 7 TO 1 STEP -1 mask = 1 << idx LEDs = mask DELAY_MS LED_DELAY BREAK NEXT GOTO Main ' ---------------------------------------------------------------------- ' SUB/FUNC Code ' ---------------------------------------------------------------------- ' Use: DELAY_MS duration ' -- shell for PAUSE SUB DELAY_MS PAUSE __param1 ENDSUB ' ---------------------------------------------------------------------- ' TASK Code ' ----------------------------------------------------------------------