Files
ueforth/esp32/platform.fs

88 lines
2.5 KiB
Forth

\ Copyright 2021 Bradley D. Nelson
\
\ Licensed under the Apache License, Version 2.0 (the "License");
\ you may not use this file except in compliance with the License.
\ You may obtain a copy of the License at
\
\ http://www.apache.org/licenses/LICENSE-2.0
\
\ Unless required by applicable law or agreed to in writing, software
\ distributed under the License is distributed on an "AS IS" BASIS,
\ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\ See the License for the specific language governing permissions and
\ limitations under the License.
( Add a yielding task so pause yields )
internals definitions
: yield-step raw-yield yield ;
' yield-step 100 100 task yield-task
yield-task start-task
forth definitions
( Set up Basic I/O )
internals definitions also serial
: serial-type ( a n -- ) Serial.write drop ;
: serial-key ( -- n )
begin pause Serial.available until 0 >r rp@ 1 Serial.readBytes drop r> ;
: serial-key? ( -- n ) Serial.available ;
also forth definitions
: default-type serial-type ;
: default-key serial-key ;
: default-key? serial-key? ;
' default-type is type
' default-key is key
' default-key? is key?
' raw-terminate is terminate
only forth definitions
also ledc also serial also SPIFFS
( Map Arduino / ESP32 things to shorter names. )
: pin ( n pin# -- ) swap digitalWrite ;
: adc ( n -- n ) analogRead ;
\ : duty ( n n -- ) 255 min 8191 255 */ ledcWrite ;
\ : freq ( n n -- ) 1000 * 13 ledcAttach drop ;
\ : tone ( n n -- ) 1000 * ledcWriteTone drop ;
( Basic Ardiuno Constants )
0 constant LOW
1 constant HIGH
1 constant INPUT
2 constant OUTPUT
\ // Changed OUTPUT from 0x02 to behave the same as Arduino pinMode(pin,OUTPUT)
\ // where you can read the state of pin even when it is set as OUTPUT
\ 3 constant OUTPUT
\ 4 constant PULLUP
\ 5 constant INPUT_PULLUP
\ 8 constant PULLDOWN
\ 9 constant INPUT_PULLDOWN
\ 16 constant OPEN_DRAIN
\ 18 constant OUTPUT_OPEN_DRAIN
\ 192 constant ANALOG
2 constant LED
( Startup Setup )
-1 echo !
115200 Serial.begin
100 ms
-1 z" /spiffs" 10 SPIFFS.begin drop
led OUTPUT pinMode
high led pin
internals definitions also ESP
: esp32-stats
getChipModel z>s type ." "
getCpuFreqMHz . ." MHz "
getChipCores . ." cores "
getFlashChipSize . ." bytes flash" cr
." System Heap: " getFreeHeap getHeapSize free. cr
." " getMaxAllocHeap . ." bytes max contiguous" cr ;
' esp32-stats internals boot-prompt !
only forth definitions
( Setup entry )
internals : ok ." ESP32forth" raw-ok ; forth