| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
reorder tests according to the AVR datasheet
|
| | |
|
| |
|
|
|
|
| |
code which makes heavy use of interrupts considerably slows down the simulator. E.g. that transmit programs large amount of data over SPI.
See wokwi/wokwi-features#280 for an example.
|
| |
|
|
| |
fix #110
|
| |
|
|
| |
Removing the interface simplifies the code
|
| | |
|
| |
|
|
| |
fix #103
|
| |
|
|
|
|
| |
also refactor timer/GPIO interaction to be more generic.
close #97
|
| |
|
| |
close #70, #84
|
| |
|
|
|
|
| |
Use a linked list instead of array. This makes the simulator runs almost twice as fast in case of timers with prescaler of 1, e.g. when using the TVout library.
In addition, we use a pool of clock event objects to avoid expensive GCs.
|
| |
|
|
| |
close #11
|
| |
|
|
| |
ditch `array.sort()` and instead manually keep the array sorted when we insert a new item.
|
| | |
|
| |
|
|
|
|
|
| |
`updateClockEvent()` and `clearClockEvent()` would sometimes mess up the list of events.
This could cause unexpected behavior when you have multiple timers running.
Also added regression tests for these methods.
|
| |
|
|
|
|
|
|
|
| |
This should improve performance, especially when running simulations with
multiple peripherals. For instance, the demo project now runs at ~322%,
up from ~185% in AVR8js 0.13.1.
BREAKING CHANGE: `tick()` methods were removed from individual peripherals.
You now need to call `cpu.tick()` instead.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
We used their I/O space address intead of their data space address.
close #61
|
| |
|
|
| |
close #58
|
| |
|
|
| |
close #59
|
| |
|
|
| |
This makes the test code easier to follow
|
| |
|
|
|
| |
The Compare Match Output bits are used to generate hardware PWM signals on selected MCU pins. This is also the mechanism used by Arduino's analogWrite() method.
See #32 for more details
|
| |
|
|
| |
close #40
|
| |
|
|
|
|
| |
According to the datasheet, the value of the high byte of the counter for 16-bit timers (such as timer 1) is only updated when the low byte is being read/written.
close #37
|
| |
|
|
| |
close #39
|
| |
|
|
| |
adapt CALL, ICALL, RCALL, RET, and RETI for MCUs with 22-bit PC
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Refactored the tests to use AVR assembly instead of hardcoded
bytecode.
This change should make the tests much easier to read and maintain.
Before:
loadProgram('659a');
Now:
loadProgram('SBI 0x0c, 5');
|
| |
|