aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-12-12test(cpu): fix implicit any errorUri Shaked1-3/+5
2020-12-12fix(cpu): event system issueUri Shaked2-2/+63
`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.
2020-12-12fix(timer): Incorrect count when stopping a timerUri Shaked2-18/+41
fix #72
2020-12-09perf!: centeral timekeepingUri Shaked12-221/+222
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.
2020-12-09refactor: central interrupt handling #38Uri Shaked12-92/+285
2020-12-09test(cpu): improve test nameUri Shaked1-1/+1
2020-11-27fix(usart): respect the given baud rate #16Uri Shaked2-54/+150
close #16
2020-11-25feat(clock): Clock Prescale (CLKPR) support #68Uri Shaked3-0/+185
close #68
2020-11-14feat: Support for simulating ATtinyx5 (e.g. ATtiny85) timers #64Uri Shaked2-12/+60
close #64
2020-11-14fix: AVRTimerConfig interface not exported #65Uri Shaked2-2/+8
close #65
2020-10-07test(gpio): extract constantsUri Shaked1-26/+30
2020-10-07fix(gpio): Changing pinMode from `INPUT` to `INPUT_PULLUP` doesn't trigger ↵Uri Shaked2-4/+13
listeners close #62
2020-09-30fix(cpu): incorrect address for RAMPZ / EINDUri Shaked2-8/+8
We used their I/O space address intead of their data space address. close #61
2020-09-02perf(timer): speed up interrupt handlingUri Shaked1-1/+4
2020-09-02perf(timer): improve timer speedUri Shaked2-11/+17
cache the value of the clock divider
2020-09-02fix(interrupt): broken on ATmega2560Uri Shaked2-1/+23
close #58
2020-09-02fix(instruction): EICALL is brokenUri Shaked2-1/+3
close #59
2020-08-22style(spi): remove redundant eslint commentsUri Shaked1-2/+0
2020-08-22feat(spi): implement SPI master #33Uri Shaked4-1/+368
close #33
2020-08-22test(eeprom): remove useless lineUri Shaked1-1/+0
2020-08-01fix(timer): keeps counting even when stopped #41Uri Shaked2-36/+51
2020-08-01test(timer): use TestProgramRunnerUri Shaked3-135/+128
2020-07-16fix(eeprom): EEPROM write fails after first attemptUri Shaked2-1/+33
close #54
2020-07-16feat(eeprom): implement EEPROM peripheralUri Shaked6-42/+408
close #15
2020-07-16test(timer): remove stray console.logUri Shaked1-1/+0
2020-07-16test(twi): extract constantsUri Shaked1-31/+46
This makes the test code more readable
2020-07-09fix(usart): bitsPerChar looking at the wrong registerUri Shaked2-7/+10
close #52
2020-07-09fix(usart): TXC interrupt triggered incorrectlyUri Shaked2-4/+18
close #51
2020-07-09test(usart): extract constantsUri Shaked1-49/+68
This makes the test code easier to read
2020-06-04test(instruction): extract constantsUri Shaked1-238/+274
This makes the test code easier to follow
2020-05-30test(timer): extract constantsUri Shaked1-133/+185
This makes the test code easier to follow
2020-05-29fix(gpio): port state not updated on DDR writeUri Shaked2-0/+15
Calling `pinState()` inside a GPIO port listener returns incorrect values after changing DDR close #47
2020-05-25perf(timer): improve tick() performanceUri Shaked1-3/+4
reduce the number of calls to TIFR/TIMSK getters
2020-05-25feat(timer): Compare Match Output (#45)Uri Shaked4-57/+342
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
2020-05-10feat(gpio): add setPin() functionUri Shaked2-0/+43
close #26
2020-05-04fix(timer): stop Timer 2 when all CS bits are 0Uri Shaked1-1/+1
close #44
2020-04-29fix(timer): Reading TCNT in 2-cycle instructionsUri Shaked3-16/+35
close #40
2020-04-28fix(timer): incorrect high counter byte behaviorUri Shaked3-46/+97
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
2020-04-28fix(instruction): LD, ST instructions should take 2 clock cyclesUri Shaked2-20/+33
close #39
2020-04-27style: reformat code with prettier 2.xUri Shaked9-34/+34
prettier rules have changed since we upgraded to 2.x
2020-04-27fix(timer): Timer value should not increment on the same cycle as TCNTn writeUri Shaked2-2/+48
close #36
2020-04-12test(timer): add more 16-bit timer testsUri Shaked2-13/+56
also fix some issues found by @gfeun and the tests
2020-04-12feat(timer): implement 16-bit timersUri Shaked2-24/+148
e.g. Timer/Counter1 on ATmega328
2020-04-09feat(instruction): 22-bit PC support #31Uri Shaked4-20/+120
adapt CALL, ICALL, RCALL, RET, and RETI for MCUs with 22-bit PC
2020-04-09feat(instruction): implement EICALL, EIJMP #31Uri Shaked2-0/+38
2020-04-08feat(instruction): implement ELPM #31Uri Shaked2-0/+71
2020-04-02fix: GPIO port listeners not invoked when writing to DDR registersUri Shaked2-3/+17
close #28
2020-04-02test(instruction): use assembly in testsUri Shaked1-89/+91
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');
2020-03-22refactor: added peripherals and cpu feature folderslironh15-25/+25
2020-03-18style(cpu): relocate some stray commentsUri Shaked1-4/+4
If you find this content useful please consider a small donation via bitcoin: bitcoin:1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2?amount=0.001&message=Donation Scraping git contents via cgit is very resource intensive. The continued hosting of these git repositories is entirely financed by your bitcoin contributions. For donations of a least 1 mBTC you include your IP address in the message of your bitcoin donation. This will remove this message in the future for requests from your IP, which will significantly reduce token usage. In any case, any contributions to bitcoin address 1mxKyQsHHugqRxPKgwaA7wUwJEGCNthn2 are very welcome. Thanks in advance for you contribution to a self-sustaining ecosystem.