Compatible with:
DOS Maximite CMM
MM150 MM170 MM+ MMX Picromite ArmiteL4
Armite F4 ArmiteH7 Picomite CMM2
Syntax:
CPU speed
CPU SLEEP
CPU SLEEP [ sec [, abortpin]]
Description:
CPU speed
Set the clock speed of the processor. 'speed' is set in MHz and on the 28/44 pin
Micromite it can be either 48, 40, 30, 20, 10, or 5.
On the Micromite Plus it can be 120, 100, 80, 60, 48, 40, 30, 20, 10 or 5.
Current drawn by the chip is proportional to the clock speed, so by halving the
clock speed the current drain is roughly halved.
The default speed of the CPU when power is applied is 40 MHz on the 28/44 pin
Micromite and 100MHz on the Micromite Plus.
When the speed is changed all timing functions in MMBasic will be automatically
corrected to keep the correct time and the console baud rate will be
unchanged.
The serial communications ports can remain open during the speed change and
their speed will be adjusted accordingly.
Note that there may be a glitch while changing speed and some characters may be
lost or corrupted.
The speed of any SPI, I2C and PWM functions open at the time will change with
the clock speed. For this reason they should be closed before this command is
used and reopened after.
CPU SLEEP
CPU SLEEP [ sec [, abortpin]]
Put the CPU to sleep. In this mode the running program will be halted and
the current drain reduced to about 40 uA.
In the first form the WAKEUP pin (see the pinout tables at the start of this
manual) will be automatically configured as a digital input and any change
in its state (ie, from high to low or low to high) will wakeup the CPU. The time
required to "wake up" in this mode is less than 1 ms.
The IR command shares the WAKEUP pin and if it is running the CPU will be
awakened by the remote key press and MMBasic will immediately decode the signal
and execute the IR interrupt.
In the second form (CPU SLEEP seconds) the command will put the CPU to sleep for
the specified number of 'seconds' (accuracy is กำ20%). The TIMER function and
the internal clock/calendar will be updated when the sleep finishes.
The timed sleep can be terminated early if 'abortpin' is specified. This can be
any I/O pin and any change in its state (ie, from high to low or low to high)
will abort the sleep. It can take up to a second for the abort signal to be
recognised so the change of state must be maintained for at least this time.
Notes:
The CPU will go to sleep in the middle of the SLEEP command and when awakened
continue with normal program execution.
All communications (serial, SPI, I2C and 1-Wire) and PWM will be frozen during
sleep. When the CPU comes out of sleep they will resume normal processing. It is
recommended that they be closed before
entering sleep as they will add to the current drawn by the chip in sleep.
External circuitry and program features can cause extra current drain while in
sleep. See the section Micromite Special Features in the Micromite manual for
the steps that should be taken to minimise the current drawn during sleep.
All timing functions will freeze during the sleep, this includes the real time
clock and background pulse commands.
CTRL-C on the console will not bring the chip out of sleep.
Also see CPU RESTART
Last edited: 28 January, 2021