Zum Inhalt springen

HSC2011/Software/EmbedVM: Unterschied zwischen den Versionen

Chrysn (Diskussion | Beiträge)
K hat „HSC2011/Software/embedVM“ nach „HSC2011/Software/EmbedVM“ verschoben: EmbedVM with capital E
Chrysn (Diskussion | Beiträge)
more on the python part
 
Zeile 25: Zeile 25:
There are two ways to write programs to run inside the virtual machine.
There are two ways to write programs to run inside the virtual machine.


There are two compilers that target EmbedVM: There is a compiler for a C-like high level language and there is a compiler that can transform python code to VM bytecode. The compiler for the C-like language is part of the EmbedVM sources. The python compiler can be found [http://fixme here].
There are two compilers that target EmbedVM: There is a compiler for a C-like high level language and there is a compiler that can transform python code to VM bytecode. The compiler for the C-like language is part of the EmbedVM sources. The python compiler can be found [http://github.com/chrysn/embedvm here].


=== Code for the EduBuzzer ===
The directory <tt>firmware/vmcode</tt> contains some code (<tt>firmware.vm</tt>) that is saved in the devices' flash memory as a standard library (e.g. the animation played while searching for a base station). The functions defined there can be used in custom code as well.
If a game wants to do something more sophisticated than turning a LED on or setting the buzzer to a fixed frequency, it can push additional code into the ATMega's RAM using the <tt>W</tt> command [[HSC2011/Communication/Serial protocol|described in the communication description]], and starting with the <tt>V</tt> command with an interrupt to the address of the main function.
Until further documentation is published, see the <tt>simon.py</tt> example program, which implements Simon's Game (the device beeps out a sequence of blinks, and the user has to enter it afterwards) in about 256 byte (of 512 currently allocated) of RAM.


[[Kategorie:Projekte]]
[[Kategorie:Projekte]]
[[Kategorie:HSC2011]]
[[Kategorie:HSC2011]]
[[Kategorie:English]]
[[Kategorie:English]]