#!/usr/bin/wish



set RMS_HOME /home/rudolphk/linux-avr/l394s

package require Itcl
load ../src/simulavr.so

puts "Simulavr loaded"
namespace import itcl::

set trace_on 1
set dev1 [new_AvrDevice_at90s8515]
set dev2 [new_AvrDevice_atmega128]
puts ">>>>>>>>>>>>>>>>>>>>>>>>>>>>> special pipe device start...   <<<<<<<<<<<<<<<<<<<<<<<<"
set dev3 [new_AvrDevice_at90s8515special]
puts ">>>>>>>>>>>>>>>>>>>>>>>>>>>>> special pipe device is running <<<<<<<<<<<<<<<<<<<<<<<<"




puts "now loading pwm4"

AvrDevice_Load $dev1 "pwm4.o.go"
AvrDevice_SetClockFreq $dev1 75

puts "now loading test"

AvrDevice_Load $dev2 "test.o.go"
AvrDevice_SetClockFreq $dev2 200

puts "new loading monispecial"

AvrDevice_Load $dev3 "monispecial.o.go"
AvrDevice_SetClockFreq $dev3 200

puts "now setting the clocks"

SystemClock_Add $systemClock $dev1
SystemClock_Add $systemClock $dev2
SystemClock_Add $systemClock $dev3
$systemClock Add $dev3


#//Adding external UserInterface and make some port connections

set ui [new_UserInterface 7777 ]

Net clk
ExtPin extClk $Pin_TRISTATE $ui "clk"
clk Add extClk

Pin pullUpClk $Pin_PULLUP
clk Add pullUpClk


OpenDrain odMasterClk [AvrDevice_GetPin $dev2 "B2"]
clk Add odMasterClk
clk Add [AvrDevice_GetPin $dev3 "D2"]   ; #moni
clk Add [AvrDevice_GetPin $dev1 "D2"]   ; #pwm

Net data
ExtPin extData $Pin_TRISTATE $ui "data"
data Add extData
Pin pullUpData $Pin_PULLUP
data Add pullUpData

OpenDrain odMasterDataW [ AvrDevice_GetPin $dev2 "B4"] ;#master
data Add odMasterDataW

OpenDrain odMoniDataW [ AvrDevice_GetPin $dev3 "D4"] ; # moni
data Add odMoniDataW

OpenDrain odPwmDataW [ AvrDevice_GetPin $dev1 "D4"] ; #pwm data write
data Add odPwmDataW

data Add [ AvrDevice_GetPin $dev2 "B3"] ; #master read
data Add [ AvrDevice_GetPin $dev1 "D3"] ; #pwm read
data Add [ AvrDevice_GetPin $dev3 "D3"] ; #moni read

Net bm0
ExtPin extbm0 $Pin_TRISTATE $ui "bm0"
bm0 Add extbm0
bm0 Add [ AvrDevice_GetPin $dev1 "A4"] 

Net bm1
ExtPin extbm1 $Pin_TRISTATE $ui "bm1"
bm1 Add extbm1
bm1 Add [ AvrDevice_GetPin $dev1 "A5"] 

Net bm2
ExtPin extbm2 $Pin_TRISTATE $ui "bm2"
bm2 Add extbm2
bm2 Add [ AvrDevice_GetPin $dev1 "A6"] 

Net bm3
ExtPin extbm3 $Pin_TRISTATE $ui "bm3"
bm3 Add extbm3
bm3 Add [ AvrDevice_GetPin $dev1 "A7"] 

puts "Now starting endless loop"
exec sleep 2
SystemClock_Endless $systemClock

