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:// | 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]] |