[Amforth] AVR8: Mega 2560 Wiping Flash Memory

2021-06-07 Thread Martin Nicholas via Amforth-devel
I had problems with my Arduino Mega erasing parts of the flash memory; sometimes the odd byte, sometimes the odd page. I changed 3 things to the flashing code to make the problem go away: 1. Checked the SPMCSR:RWWSB bit. This is a crib from the Atmel example (29.6.13 Simple Assembly Code Example

[Amforth] avr8 missing bm-test

2020-12-05 Thread Tristan Williams
A very minor item. avr8 has bm-set, bm-clear and bm-toggle as assembler words but does not appear to have bm-test. This is not a big thing as it is easily defined in forth as : bm-test ( c a -- c ) c@ and ; However, I've made myself an assembler version so I have a matching set. It seems only v

Re: [Amforth] avr8

2020-07-06 Thread Erich Wälde
Hello Brian, thanks for your message! > ... to the arm based systems where the 'real' work can be > done. Well observed imho. I read a book on PIC microcontrollers many years back, where the authors made a case that if need be, counted loops (in asm, no matter which way through the if statements

Re: [Amforth] avr8

2020-07-06 Thread Tristan Williams
or > everything. > > brian-in-ohio > > On 7/1/20 2:17 AM, Tristan Williams wrote: > Hello, > > > Who of you is using which target controller? > I use AVR atmega328p, atmega1284p, atmega2560 > > > Can we get rid of the Atmel/Microchip Avrasm Assembler? >

[Amforth] avr8

2020-07-06 Thread Brian
you is using which target controller? I use AVR atmega328p, atmega1284p, atmega2560 Can we get rid of the Atmel/Microchip Avrasm Assembler? Unless AmForth/avr8 can be ported to gnu assembly, no. I would imagine that would be a lot of work and wine does run it very well. Having "fuller"

Re: [Amforth] AVR8 build questions

2017-05-15 Thread Tristan Williams
Hello Peter, Thank you. I hadn't considered semiconductor relays but will do so now. Whilst the 2560 does have the extra UARTs, part of the appeal of the 1284p is that it is still available in a DIP package. For a DAC I was thinking of an MCP4801/4011/4821 (or the dual 4802) which would give the o

Re: [Amforth] AVR8 build questions

2017-05-09 Thread Peter C. Hauser
Hello Tristan, If you want a flexible multi-purpose board perhaps you want to include a DAC, and a high resolution ADC. Semiconductor relays for switching loads. It may also be useful to have extra UARTs, but for this you might prefer to use the 2560 instead of the 1284. If you want to conne

Re: [Amforth] AVR8 build questions

2017-05-09 Thread Tristan Williams
Hello Matthias, > I use a 1284 occasionally too. Works fine and without problems. Thank you for this. It persuaded me to look at my hardware again. Building a board that pays attention to the reference hardware design seems to have made the difference. It works fine and without problems for me al

Re: [Amforth] AVR8 build questions

2017-05-08 Thread Matthias Trute
Am Montag, den 08.05.2017, 16:54 +0100 schrieb Tristan Williams: > Hello Matthias, > > Two build questions. > > 1)  > > I have downloaded 2252 and run into this error when building for my > uno > > amforth-6.5A/avr8\drivers/generic-isr.asm(28): error: jz: Unknown > instruction or macro Mea cul

[Amforth] AVR8 build questions

2017-05-08 Thread Tristan Williams
Hello Matthias, Two build questions. 1) I have downloaded 2252 and run into this error when building for my uno amforth-6.5A/avr8\drivers/generic-isr.asm(28): error: jz: Unknown instruction or macro amforth-6.5A/avr8\drivers/generic-isr.asm(28): error: isr_clean: Unknown instruction or macro

Re: [Amforth] AVR8 watchdog (reset and interrupt) atmega328p

2017-05-07 Thread MIchael Kalus
Müsste es dann nicht c!wd heißen? Michael 2017-05-07 15:42 GMT+02:00 Matthias Trute : > Hi Tristan, > > I've put your code online, revision 2252 contains the new > file. There is only one change: I renamed the wd! into !wdc. > It tells "store to watchdog control" and follows the more > or less in

Re: [Amforth] AVR8 watchdog (reset and interrupt) atmega328p

2017-05-07 Thread Matthias Trute
Hi Tristan, I've put your code online, revision 2252 contains the new file. There is only one change: I renamed the wd! into !wdc. It tells "store to watchdog control" and follows the more or less informal convention that ! and @ can be preceeded with size information and followed by location info

Re: [Amforth] AVR8 watchdog (reset and interrupt) atmega328p

2017-05-03 Thread Tristan Williams
Hello Matthias, > I'll look at them in the next few days. Since we've just discovered > some interrupt related bugs so maybe I'll ask you to do some > tests with the code I will checkin. Is this ok for you? Absolutely fine. Tristan

Re: [Amforth] AVR8 watchdog (reset and interrupt) atmega328p

2017-05-02 Thread Matthias Trute
Hi Tristan, > > > > It would be a great contribution for the cookbook. Esp if it works > > with > > Forth code. > This made me think that writing 4 or 5 assembler words was not the > best way. Instead, have one assembler word wd! to perform the timed > write to WDTCSR and then have forth words fo

Re: [Amforth] AVR8 watchdog (reset and interrupt) atmega328p

2017-05-02 Thread Tristan Williams
Hello Matthias, > IIRC only the "disable watchdog" sequence is timing critical (the > 4 cpu cycles you mention). All other tasks can be performed at > lower speed, so a forth implementation should be fine. My atmega328p seems to require any change to WDTCSR to be completed within 4 cycles (I have

Re: [Amforth] AVR8 watchdog (reset and interrupt) atmega328p

2017-04-22 Thread Matthias Trute
Am Donnerstag, den 20.04.2017, 09:04 +0100 schrieb Tristan Williams: > AVR8 watchdog (reset and interrupt) atmega328p > > I wanted to use the 128 kHz watchdog oscillator as an additional > timer. The watchdog creates a full reset cycle, that means that the full startup sequence is performed. Your

[Amforth] AVR8 watchdog (reset and interrupt) atmega328p

2017-04-20 Thread Tristan Williams
AVR8 watchdog (reset and interrupt) atmega328p I wanted to use the 128 kHz watchdog oscillator as an additional timer. I saw that AVR8 watchdog timer and reset was addressed on the mailing list in late 2013 using assembler.frt In the source tree there is an assembler word -wdt (no-wdt.asm), whi