
\
\  Tritiled für MSP430F2012
\
\    P1.3: Taster gegen GND
\    P1.6: Gate von N-MOSFET BS170, Source an GND, Drain über Spule 1 mH und grüner LED an Vcc
\
\    15 kOhm Hochziehwiderstand /Reset an VCC
\
\    Bei 3.3 V: Eingeschaltet 8.0 uA, Ausgeschaltet 0.6 uA
\

new \ Das Dictionary des Crosscompilers zurücksetzen

\ <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
    TARGET
\ <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

: us 0 ?do i i + drop i i + drop loop inline ; \ Für 8 MHz bemessen
: ms 0 ?do 998 us loop ;

: impuls ( -- ) 64 p1out cbis! 64 p1out cbic! ;

: knopfdruck ( -- ) $110 TACTL xor! 200 ms 0 p1ifg c! wakeup ;

: tritiled ( -- )

  0     p1sel c!  \ Keine Sonderfunktionen and Port 1
  8     p1out c!   \ Hochzieh-
  8     p1ren c!    \ widerstand für den Knopf aktivieren
  8 not p1dir c!     \ Alle anderen Pins Ausgänge, low

    0   p2sel c!  \ Quarzoszillator aus
    0   p2out c!   \ Low-
  255   p2dir c!    \ Ausgänge

  8MHz
  %00001000 BCSCTL2 c!  \ SELS: VLO --> SMCLK
  %00100000 BCSCTL3 c!   \ LFXT1S VLO, 12 kHz --> SMCLK, ACLK

   $10  TACCTL0 !  \ CCIE
    12  TACCR0  !   \ Timer zählt bis 12 --> Impulse mit VLO/12 --> 1 kHz
  $110  TACTL   !    \ ACLK, Up Mode

  8     p1ies c!  \ High-to-low, also Knopf drücken
  0     p1ifg c!   \ Noch kein Interrupt
  8     p1ie  c!    \ Interrupt bei Tastendruck

  eint

  begin
    tactl @
    if
      lpm1 \ CPU and DCO off
    else
      lpm4 \ Alles aus
    then
  again
;

\ <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
    HOST
\ <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>


$FFF2 vector impuls    \ Timer A0
$FFE4 vector knopfdruck \ Port 1
$FFFE vector tritiled    \ Vektortabelle füllen und Einsprungpunkte definieren
crosscompile              \ Zeit für die Crosscompilation !

disimage-file tritiled.asm
hexdump-file tritiled.hex
