You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
(6) |
Mar
(41) |
Apr
(23) |
May
(11) |
Jun
(2) |
Jul
|
Aug
|
Sep
(9) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2008 |
Jan
(6) |
Feb
(1) |
Mar
(23) |
Apr
(18) |
May
(21) |
Jun
(13) |
Jul
(34) |
Aug
(5) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(4) |
2009 |
Jan
|
Feb
(5) |
Mar
(5) |
Apr
(10) |
May
(1) |
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(13) |
2010 |
Jan
(10) |
Feb
(4) |
Mar
(28) |
Apr
(3) |
May
(38) |
Jun
(22) |
Jul
(92) |
Aug
(154) |
Sep
(218) |
Oct
(45) |
Nov
(20) |
Dec
(1) |
2011 |
Jan
(33) |
Feb
(15) |
Mar
(32) |
Apr
(33) |
May
(48) |
Jun
(35) |
Jul
(7) |
Aug
|
Sep
(11) |
Oct
(5) |
Nov
|
Dec
(7) |
2012 |
Jan
(56) |
Feb
(11) |
Mar
(6) |
Apr
|
May
(128) |
Jun
(59) |
Jul
(21) |
Aug
(16) |
Sep
(24) |
Oct
(39) |
Nov
(12) |
Dec
(12) |
2013 |
Jan
(14) |
Feb
(61) |
Mar
(97) |
Apr
(46) |
May
(13) |
Jun
(23) |
Jul
(12) |
Aug
(25) |
Sep
(9) |
Oct
(81) |
Nov
(73) |
Dec
(45) |
2014 |
Jan
(36) |
Feb
(57) |
Mar
(20) |
Apr
(41) |
May
(43) |
Jun
(11) |
Jul
(14) |
Aug
(32) |
Sep
(9) |
Oct
(27) |
Nov
(21) |
Dec
(6) |
2015 |
Jan
(14) |
Feb
(23) |
Mar
(1) |
Apr
(19) |
May
(40) |
Jun
(11) |
Jul
(1) |
Aug
(2) |
Sep
(14) |
Oct
(10) |
Nov
(9) |
Dec
(13) |
2016 |
Jan
(4) |
Feb
(3) |
Mar
(7) |
Apr
|
May
(4) |
Jun
(13) |
Jul
(8) |
Aug
(3) |
Sep
(4) |
Oct
(1) |
Nov
|
Dec
|
2017 |
Jan
(6) |
Feb
(1) |
Mar
(1) |
Apr
(7) |
May
(10) |
Jun
(5) |
Jul
(7) |
Aug
(9) |
Sep
|
Oct
(1) |
Nov
(5) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
(3) |
Jul
(6) |
Aug
|
Sep
(2) |
Oct
(54) |
Nov
(47) |
Dec
(53) |
2019 |
Jan
(23) |
Feb
(24) |
Mar
(19) |
Apr
(15) |
May
(5) |
Jun
(34) |
Jul
(9) |
Aug
(9) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
(7) |
Apr
(7) |
May
(5) |
Jun
(15) |
Jul
(22) |
Aug
(28) |
Sep
(13) |
Oct
(9) |
Nov
(17) |
Dec
(13) |
2021 |
Jan
(5) |
Feb
(1) |
Mar
(1) |
Apr
(9) |
May
(21) |
Jun
(9) |
Jul
|
Aug
(6) |
Sep
(16) |
Oct
|
Nov
(1) |
Dec
(6) |
2022 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(11) |
Sep
(21) |
Oct
(5) |
Nov
(1) |
Dec
(1) |
2024 |
Jan
(1) |
Feb
(4) |
Mar
|
Apr
(7) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Fred Z. <f.z...@me...> - 2018-11-24 11:01:45
|
Hello fellow developers, I'm a newbie in this community. I am looking for information about controlling the TM1673 (4 Digit 7 Segment Display) with amforth. Any suggestions? Fred |
From: Matthias T. <mt...@we...> - 2018-11-13 18:34:48
|
Am Dienstag, den 13.11.2018, 15:53 +0000 schrieb Jan Kromhout: > Hello, > > I are struggle with the buffer: > As you can see I create two array’s. > I expect that when I initialize this I can read the value. > It's not true. As you can see, values are overwritten. > Am I doing something wrong? I'm pretty sure that all the cells are not what you want. At least the definition of the buffer does not match their usage: > \ Segment byte maps for numbers 0 to 9 > 10 buffer: Segment_Map_Digit This is 10 bytes, not 10 cells. > : Segment_Map_Digit@ cells Segment_Map_Digit + c@ ; Here you turn a number into a cell-index and access a single byte. The upper half of the cell is not used : initSegment_Map_Digit > \ Segment byte maps for numbers 0 to 9 > $c0 0 Segment_Map_Digit! > $f9 1 Segment_Map_Digit! > $a4 2 Segment_Map_Digit! > $b0 3 Segment_Map_Digit! > $99 4 Segment_Map_Digit! The last position inside your buffer. > $92 5 Segment_Map_Digit! > $82 6 Segment_Map_Digit! > $f8 7 Segment_Map_Digit! > $80 8 Segment_Map_Digit! > $90 9 Segment_Map_Digit! A classic buffer overflow. You access memory outside the buffer (9 cells is 18, which is beyond the 10 bytes allocated) Matthias |
From: Jan K. <kro...@ho...> - 2018-11-13 15:53:32
|
Hello, I are struggle with the buffer: As you can see I create two array’s. I expect that when I initialize this I can read the value. It's not true. As you can see, values are overwritten. Am I doing something wrong? Cheers, Jan \ Segment byte maps for numbers 0 to 9 10 buffer: Segment_Map_Digit \ Byte maps to select digit 1 to 4 4 buffer: SEGMENT_SELECT : Segment_Map_Digit@ cells Segment_Map_Digit + c@ ; : Segment_Map_Digit! cells Segment_Map_Digit + c! ; : SEGMENT_SELECT@ cells SEGMENT_SELECT + c@ ; : SEGMENT_SELECT! cells SEGMENT_SELECT + c! ; : initSegment_Map_Digit \ Segment byte maps for numbers 0 to 9 $c0 0 Segment_Map_Digit! $f9 1 Segment_Map_Digit! $a4 2 Segment_Map_Digit! $b0 3 Segment_Map_Digit! $99 4 Segment_Map_Digit! $92 5 Segment_Map_Digit! $82 6 Segment_Map_Digit! $f8 7 Segment_Map_Digit! $80 8 Segment_Map_Digit! $90 9 Segment_Map_Digit! \ Byte maps to select digit 1 to 4 $f1 0 SEGMENT_SELECT! $f2 1 SEGMENT_SELECT! $f4 2 SEGMENT_SELECT! $f8 3 SEGMENT_SELECT! ; Result : (ATmega328P)> : test 10 0 do i Segment_Map_Digit@ . cr loop ; ok (ATmega328P)> initSegment_Map_Digit ok (ATmega328P)> hex test C0 F9 A4 B0 99 F1 F2 F4 F8 90 ok |
From: Erich W. <ew....@na...> - 2018-11-12 22:17:06
|
Hello Jan, you were faster than I could think of your problem. Yes, /everything/ needs to be initialized on reset. And yes, very strange things can happen, if you miss one little thing. Glad you found it! Erich Jan Kromhout writes: > Hi, > > Also find the problem. > In my program I use buffers: to create an array. Never thought that these will be cleared at a reset, and also the variables > used in my program . > After make an init and start this after a reset my application is working as it should. > > Cheers, > > Jan > > > >> Op 12 nov. 2018, om 19:30 heeft Jan Kromhout <kro...@ho...> het volgende geschreven: >> >> Hi, >> >> After a few days of trial and error, I finally managed to control the 12c-LCD mine. >> A stupid interpretation caused the delay, eventually solved. >> My tests are running well. >> >> But now it comes. When I give a reset of the Arduino and afterwards I want to write a value to the LCD then it simply does not work. >> After reset I init the I2C again. When I check with $38 i2c.ping? I get back the true (-1) value. The i2c.status is $f8, but I can’f fint the >> meaning of this value. >> >> When I check the I2C bus with logic analyser no activity. >> >> Only when I re-load the application it does run again. >> >> >> Any idea what that could cause? >> >> Cheers, >> >> Jan >> >> >> >> _______________________________________________ >> Amforth-devel mailing list for http://amforth.sf.net/ >> Amf...@li... >> https://lists.sourceforge.net/lists/listinfo/amforth-devel > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel -- May the Forth be with you ... |
From: Jan K. <kro...@ho...> - 2018-11-12 20:06:04
|
Hi, Also find the problem. In my program I use buffers: to create an array. Never thought that these will be cleared at a reset, and also the variables used in my program . After make an init and start this after a reset my application is working as it should. Cheers, Jan > Op 12 nov. 2018, om 19:30 heeft Jan Kromhout <kro...@ho...> het volgende geschreven: > > Hi, > > After a few days of trial and error, I finally managed to control the 12c-LCD mine. > A stupid interpretation caused the delay, eventually solved. > My tests are running well. > > But now it comes. When I give a reset of the Arduino and afterwards I want to write a value to the LCD then it simply does not work. > After reset I init the I2C again. When I check with $38 i2c.ping? I get back the true (-1) value. The i2c.status is $f8, but I can’f fint the > meaning of this value. > > When I check the I2C bus with logic analyser no activity. > > Only when I re-load the application it does run again. > > > Any idea what that could cause? > > Cheers, > > Jan > > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Jan K. <kro...@ho...> - 2018-11-12 18:31:02
|
Hi, After a few days of trial and error, I finally managed to control the 12c-LCD mine. A stupid interpretation caused the delay, eventually solved. My tests are running well. But now it comes. When I give a reset of the Arduino and afterwards I want to write a value to the LCD then it simply does not work. After reset I init the I2C again. When I check with $38 i2c.ping? I get back the true (-1) value. The i2c.status is $f8, but I can’f fint the meaning of this value. When I check the I2C bus with logic analyser no activity. Only when I re-load the application it does run again. Any idea what that could cause? Cheers, Jan |
From: Jan K. <kro...@ho...> - 2018-11-11 21:03:40
|
Hi, A general question. When I won’t to write I should put a “0” behind the address. Should I do it by hand, or are the words clever enough to do this? My address => $38 = %0111000 After shifting => %1110000 = $70 Cheers, Jan Op 10 nov. 2018, om 21:23 heeft Tristan Williams <ho...@tj...<mailto:ho...@tj...>> het volgende geschreven: Jan, This device is need only one byte per command, so I have used i2c.c!. Do you ave a clou? but it might be expecting two single bytes, one immediately after the other. Try Number digit 2 7SEG i2c.n! Best wishes, Tristan On 10Nov18 17:27, Jan Kromhout via Amforth-devel wrote: Tristan, This is my simple code. The address of the SA1064 is $38 I have checked with the arduino for save playing the frequency of the bus should be less than 100 kHz. When I translate the simple code of the arduino to amForth I get this, but no results. Even no results with deleting the begin and end. This device is need only one byte per command, so I have used i2c.c!. Do you ave a clou? Cheers Jan \ Gravitech display, I2C Generic marker --gravitech-- $38 constant 7SEG \ I2C address for 7-Segment PORTC 4 portpin: SDA PORTC 5 portpin: SCA SDA pin_output SCA pin_output : initI2C i2c.init.default ; \ Configure 7-Segment to 12mA segment output current, Dynamic mode, \ and Digits 1, 2, 3 AND 4 are NOT blanked : init7SEG \ 7SEG i2c.begin 0 7SEG i2c.c! 71 7SEG i2c.c! \ i2c.end ; : Send7SEG ( Number Digit ) \ 7SEG i2c.begin 7SEG i2c.c! \ Digit 7SEG i2c.c! \ Number \ i2c.end ; : test7SEG \ i2c.detect \ 7SEG i2c.begin 0 7SEG i2c.c! %01000111 7SEG i2c.c! \ i2c.end \ 7SEG i2c.begin 1 7SEG i2c.c! \ Digit $7d 7SEG i2c.c! \ Number \ i2c.end ; Op 10 nov. 2018, om 17:15 heeft Tristan Williams <ho...@tj...<mailto:ho...@tj...>> het volgende geschreven: Jan, Have a look at the source your-amforth/common/lib/hardware/i2c.frt and the comments at the top of the file. i2c.c! i2c.c@ i2c.n! i2c.n@ i2c.m!n@ already have the i2c.begin and i2c.end within the respective word. I don't know the Gravitech shield but if you are sending multiple bytes i2c.n! might be useful. Best wishes, Tristan On 09Nov18 19:21, Jan Kromhout wrote: Hi, This is my first step on the I2C road. I have a Gravitech shield for the Arduino, that work well. The code is very simple, and I have translate it to Forth. The display is not working. I include the Forth code. What is wrong? Thangs for any help. Cheers, Jan \ Gravitech display, I2C Generic marker --gravitech-- $38 constant 7SEG \ I2C address for 7-Segment / Configure 7-Segment to 12mA segment output current, Dynamic mode, / and Digits 1, 2, 3 AND 4 are NOT blanked : init7SEG 7SEG i2c.begin 0 7SEG i2c.c! %01000111 7SEG i2c.c! i2c.end ; : Send7SEG ( Digit Number ) 7SEG i2c.begin swap 7SEG i2c.c! \ Digit 7SEG i2c.c! \ Number i2c.end ; /* Configure 7-Segment to 12mA segment output current, Dynamic mode, and Digits 1, 2, 3 AND 4 are NOT blanked */ Wire.beginTransmission(_7SEG); Wire.write(0); Wire.write(B01000111); Wire.endTransmission(); /*************************************************************************** Function Name: Send7SEG Purpose: Send I2C commands to drive 7-segment display. ****************************************************************************/ void Send7SEG (byte Digit, byte Number) { Wire.beginTransmission(_7SEG); Wire.write(Digit); Wire.write(Number); Wire.endTransmission(); } _______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amf...@li...<mailto:Amf...@li...> https://lists.sourceforge.net/lists/listinfo/amforth-devel _______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amf...@li...<mailto:Amf...@li...> https://lists.sourceforge.net/lists/listinfo/amforth-devel _______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amf...@li...<mailto:Amf...@li...> https://lists.sourceforge.net/lists/listinfo/amforth-devel _______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amf...@li...<mailto:Amf...@li...> https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Jan K. <kro...@ho...> - 2018-11-10 20:27:15
|
Tristan, I have tried that. No results. Monday I get an Logic Analyser so I can watch the I2C bus. Hopefully can I figure out what is wrong. Cheers, Jan > Op 10 nov. 2018, om 21:23 heeft Tristan Williams <ho...@tj...> het volgende geschreven: > > Jan, > >> This device is need only one byte per command, so I have used i2c.c!. >> Do you ave a clou? > > but it might be expecting two single bytes, one immediately after the other. > > Try > > Number digit 2 7SEG i2c.n! > > Best wishes, > Tristan > > > > On 10Nov18 17:27, Jan Kromhout via Amforth-devel wrote: >> Tristan, >> >> This is my simple code. >> The address of the SA1064 is $38 >> >> I have checked with the arduino for save playing the frequency of the bus should be less than 100 kHz. >> When I translate the simple code of the arduino to amForth I get this, but no results. >> Even no results with deleting the begin and end. >> This device is need only one byte per command, so I have used i2c.c!. >> Do you ave a clou? >> >> Cheers >> >> Jan >> >> >> >> \ Gravitech display, I2C Generic >> >> marker --gravitech-- >> >> $38 constant 7SEG \ I2C address for 7-Segment >> >> PORTC 4 portpin: SDA >> PORTC 5 portpin: SCA >> SDA pin_output >> SCA pin_output >> >> : initI2C >> i2c.init.default >> ; >> >> \ Configure 7-Segment to 12mA segment output current, Dynamic mode, >> \ and Digits 1, 2, 3 AND 4 are NOT blanked >> >> : init7SEG >> \ 7SEG i2c.begin >> 0 7SEG i2c.c! >> 71 7SEG i2c.c! >> \ i2c.end >> ; >> >> : Send7SEG ( Number Digit ) >> \ 7SEG i2c.begin >> 7SEG i2c.c! \ Digit >> 7SEG i2c.c! \ Number >> \ i2c.end >> ; >> >> : test7SEG >> \ i2c.detect >> \ 7SEG i2c.begin >> 0 7SEG i2c.c! >> %01000111 7SEG i2c.c! >> \ i2c.end >> >> \ 7SEG i2c.begin >> 1 7SEG i2c.c! \ Digit >> $7d 7SEG i2c.c! \ Number >> \ i2c.end >> ; >> >> >>> Op 10 nov. 2018, om 17:15 heeft Tristan Williams <ho...@tj...> het volgende geschreven: >>> >>> Jan, >>> >>> Have a look at the source your-amforth/common/lib/hardware/i2c.frt >>> and the comments at the top of the file. >>> >>> i2c.c! i2c.c@ i2c.n! i2c.n@ i2c.m!n@ already have the i2c.begin and >>> i2c.end within the respective word. I don't know the Gravitech shield >>> but if you are sending multiple bytes i2c.n! might be useful. >>> >>> Best wishes, >>> Tristan >>> >>> On 09Nov18 19:21, Jan Kromhout wrote: >>>> Hi, >>>> >>>> This is my first step on the I2C road. >>>> I have a Gravitech shield for the Arduino, that work well. >>>> The code is very simple, and I have translate it to Forth. >>>> The display is not working. >>>> I include the Forth code. What is wrong? >>>> Thangs for any help. >>>> >>>> Cheers, >>>> >>>> Jan >>>> >>>> \ Gravitech display, I2C Generic >>>> >>>> marker --gravitech-- >>>> >>>> $38 constant 7SEG \ I2C address for 7-Segment >>>> >>>> / Configure 7-Segment to 12mA segment output current, Dynamic mode, >>>> / and Digits 1, 2, 3 AND 4 are NOT blanked >>>> >>>> : init7SEG >>>> 7SEG i2c.begin >>>> 0 7SEG i2c.c! >>>> %01000111 7SEG i2c.c! >>>> i2c.end >>>> ; >>>> >>>> : Send7SEG ( Digit Number ) >>>> 7SEG i2c.begin >>>> swap 7SEG i2c.c! \ Digit >>>> 7SEG i2c.c! \ Number >>>> i2c.end >>>> ; >>>> >>>> >>>> /* Configure 7-Segment to 12mA segment output current, Dynamic mode, >>>> and Digits 1, 2, 3 AND 4 are NOT blanked */ >>>> >>>> Wire.beginTransmission(_7SEG); >>>> Wire.write(0); >>>> Wire.write(B01000111); >>>> Wire.endTransmission(); >>>> >>>> >>>> /*************************************************************************** >>>> Function Name: Send7SEG >>>> >>>> Purpose: >>>> Send I2C commands to drive 7-segment display. >>>> ****************************************************************************/ >>>> >>>> void Send7SEG (byte Digit, byte Number) >>>> { >>>> Wire.beginTransmission(_7SEG); >>>> Wire.write(Digit); >>>> Wire.write(Number); >>>> Wire.endTransmission(); >>>> } >>>> >>>> >>>> _______________________________________________ >>>> Amforth-devel mailing list for http://amforth.sf.net/ >>>> Amf...@li... >>>> https://lists.sourceforge.net/lists/listinfo/amforth-devel >>>> >>> >>> >>> _______________________________________________ >>> Amforth-devel mailing list for http://amforth.sf.net/ >>> Amf...@li... >>> https://lists.sourceforge.net/lists/listinfo/amforth-devel >> >> >> _______________________________________________ >> Amforth-devel mailing list for http://amforth.sf.net/ >> Amf...@li... >> https://lists.sourceforge.net/lists/listinfo/amforth-devel >> > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Tristan W. <ho...@tj...> - 2018-11-10 20:23:41
|
Jan, > This device is need only one byte per command, so I have used i2c.c!. > Do you ave a clou? but it might be expecting two single bytes, one immediately after the other. Try Number digit 2 7SEG i2c.n! Best wishes, Tristan On 10Nov18 17:27, Jan Kromhout via Amforth-devel wrote: > Tristan, > > This is my simple code. > The address of the SA1064 is $38 > > I have checked with the arduino for save playing the frequency of the bus should be less than 100 kHz. > When I translate the simple code of the arduino to amForth I get this, but no results. > Even no results with deleting the begin and end. > This device is need only one byte per command, so I have used i2c.c!. > Do you ave a clou? > > Cheers > > Jan > > > > \ Gravitech display, I2C Generic > > marker --gravitech-- > > $38 constant 7SEG \ I2C address for 7-Segment > > PORTC 4 portpin: SDA > PORTC 5 portpin: SCA > SDA pin_output > SCA pin_output > > : initI2C > i2c.init.default > ; > > \ Configure 7-Segment to 12mA segment output current, Dynamic mode, > \ and Digits 1, 2, 3 AND 4 are NOT blanked > > : init7SEG > \ 7SEG i2c.begin > 0 7SEG i2c.c! > 71 7SEG i2c.c! > \ i2c.end > ; > > : Send7SEG ( Number Digit ) > \ 7SEG i2c.begin > 7SEG i2c.c! \ Digit > 7SEG i2c.c! \ Number > \ i2c.end > ; > > : test7SEG > \ i2c.detect > \ 7SEG i2c.begin > 0 7SEG i2c.c! > %01000111 7SEG i2c.c! > \ i2c.end > > \ 7SEG i2c.begin > 1 7SEG i2c.c! \ Digit > $7d 7SEG i2c.c! \ Number > \ i2c.end > ; > > > > Op 10 nov. 2018, om 17:15 heeft Tristan Williams <ho...@tj...> het volgende geschreven: > > > > Jan, > > > > Have a look at the source your-amforth/common/lib/hardware/i2c.frt > > and the comments at the top of the file. > > > > i2c.c! i2c.c@ i2c.n! i2c.n@ i2c.m!n@ already have the i2c.begin and > > i2c.end within the respective word. I don't know the Gravitech shield > > but if you are sending multiple bytes i2c.n! might be useful. > > > > Best wishes, > > Tristan > > > > On 09Nov18 19:21, Jan Kromhout wrote: > >> Hi, > >> > >> This is my first step on the I2C road. > >> I have a Gravitech shield for the Arduino, that work well. > >> The code is very simple, and I have translate it to Forth. > >> The display is not working. > >> I include the Forth code. What is wrong? > >> Thangs for any help. > >> > >> Cheers, > >> > >> Jan > >> > >> \ Gravitech display, I2C Generic > >> > >> marker --gravitech-- > >> > >> $38 constant 7SEG \ I2C address for 7-Segment > >> > >> / Configure 7-Segment to 12mA segment output current, Dynamic mode, > >> / and Digits 1, 2, 3 AND 4 are NOT blanked > >> > >> : init7SEG > >> 7SEG i2c.begin > >> 0 7SEG i2c.c! > >> %01000111 7SEG i2c.c! > >> i2c.end > >> ; > >> > >> : Send7SEG ( Digit Number ) > >> 7SEG i2c.begin > >> swap 7SEG i2c.c! \ Digit > >> 7SEG i2c.c! \ Number > >> i2c.end > >> ; > >> > >> > >> /* Configure 7-Segment to 12mA segment output current, Dynamic mode, > >> and Digits 1, 2, 3 AND 4 are NOT blanked */ > >> > >> Wire.beginTransmission(_7SEG); > >> Wire.write(0); > >> Wire.write(B01000111); > >> Wire.endTransmission(); > >> > >> > >> /*************************************************************************** > >> Function Name: Send7SEG > >> > >> Purpose: > >> Send I2C commands to drive 7-segment display. > >> ****************************************************************************/ > >> > >> void Send7SEG (byte Digit, byte Number) > >> { > >> Wire.beginTransmission(_7SEG); > >> Wire.write(Digit); > >> Wire.write(Number); > >> Wire.endTransmission(); > >> } > >> > >> > >> _______________________________________________ > >> Amforth-devel mailing list for http://amforth.sf.net/ > >> Amf...@li... > >> https://lists.sourceforge.net/lists/listinfo/amforth-devel > >> > > > > > > _______________________________________________ > > Amforth-devel mailing list for http://amforth.sf.net/ > > Amf...@li... > > https://lists.sourceforge.net/lists/listinfo/amforth-devel > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel > |
From: Erich W. <ew....@na...> - 2018-11-10 18:15:13
|
Hello Jan, > The i2c scanner is seeing $38, should i still shift to $70? Don't be afraid of just trying this. There is nothing that breaks, if you happen to use a different i2c address. So I dont' think so, but let me check > | $ ls -l /dev/ttyUSB0 > | crw-rw---- 1 root dialout 188, 0 2018-11-10 18:33 /dev/ttyUSB0 > | $ minicom -wo -b 115200 -D /dev/ttyUSB0 > | ok > | > +i2c > | ok > | > hex i2c.scan > | 50 > | ok > | > i2c_addr_rtc . > | 50 ok > | > i2c.detect > | 0 1 2 3 4 5 6 7 8 9 A B C D E F > | 0: -- -- -- -- -- -- -- -- -- > | 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > | 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > | 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > | 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > | 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > | 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > | 70: -- -- -- -- -- -- -- -- > | ok In that case the address is good. At least as long as you use your-amforth/trunk/common/lib/hardware/i2c.frt and its includes. Dealing with unresponsive hardware is always a little challenging, because you don't /see/ anything for a long time. A few ideas: - does the hw work with another program? (then the hw is good) - can you successfully talk to another component on the i2c? - can you add an LED to SCL and SDA and see, whether both are blinking when accessing the bus? Kind of poor mans oscilloscope ... - did you check that the TWI unit is initialized correctly? - did you try a different bus speed, eg. 100 kHz instead of 400? - does your code read the ACKs on the bus correctly (yes, if you use the above mentioned libs) - none of the above ... Things like that. Don't despair! And don't panic either :-) It took me something like a month to get a 434 MHz radio link to work. Mainly because i didn't /see/ anything! In the end a 20 Eu TV USB dongle and gnuradio made me see the signal. Cheers, Erich <snip> |
From: Erich W. <ew....@na...> - 2018-11-10 18:07:23
|
Hello Jan, > Where can I download the software of the articles of Clock Works. > The link https://wiki.forth-ev.de/doku.php/projects:clockworks ... Thanks for reminding me, that there is a broken link in the game. This one is better: https://wiki.forth-ev.de/doku.php/projects:clockworks:clockworks Note the additional ":clockworks" But at the end it /should/ point to http://amforth.sourceforge.net/Projects/ClockWorks/index.html anyway. This is where the complete source code ist available. So I need to fix the page on wiki.forth-ev.de a little. Cheers, Erich -- May the Forth be with you ... |
From: Jan K. <jan...@ic...> - 2018-11-10 16:28:26
|
Hello, Find the source!! Cheers, Jan > Op 10 nov. 2018, om 16:26 heeft Jan Kromhout via Amforth-devel <amf...@li...> het volgende geschreven: > > Hello, > > Where can I download the software of the articles of Clock Works. > The link https://wiki.forth-ev.de/doku.php/projects:clockworks <https://wiki.forth-ev.de/doku.php/projects:clockworks> gives the message. > > > > Dieses Thema existiert noch nicht > > Cheers, > > Jan > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Jan K. <jan...@ic...> - 2018-11-10 16:28:00
|
Tristan, This is my simple code. The address of the SA1064 is $38 I have checked with the arduino for save playing the frequency of the bus should be less than 100 kHz. When I translate the simple code of the arduino to amForth I get this, but no results. Even no results with deleting the begin and end. This device is need only one byte per command, so I have used i2c.c!. Do you ave a clou? Cheers Jan \ Gravitech display, I2C Generic marker --gravitech-- $38 constant 7SEG \ I2C address for 7-Segment PORTC 4 portpin: SDA PORTC 5 portpin: SCA SDA pin_output SCA pin_output : initI2C i2c.init.default ; \ Configure 7-Segment to 12mA segment output current, Dynamic mode, \ and Digits 1, 2, 3 AND 4 are NOT blanked : init7SEG \ 7SEG i2c.begin 0 7SEG i2c.c! 71 7SEG i2c.c! \ i2c.end ; : Send7SEG ( Number Digit ) \ 7SEG i2c.begin 7SEG i2c.c! \ Digit 7SEG i2c.c! \ Number \ i2c.end ; : test7SEG \ i2c.detect \ 7SEG i2c.begin 0 7SEG i2c.c! %01000111 7SEG i2c.c! \ i2c.end \ 7SEG i2c.begin 1 7SEG i2c.c! \ Digit $7d 7SEG i2c.c! \ Number \ i2c.end ; > Op 10 nov. 2018, om 17:15 heeft Tristan Williams <ho...@tj...> het volgende geschreven: > > Jan, > > Have a look at the source your-amforth/common/lib/hardware/i2c.frt > and the comments at the top of the file. > > i2c.c! i2c.c@ i2c.n! i2c.n@ i2c.m!n@ already have the i2c.begin and > i2c.end within the respective word. I don't know the Gravitech shield > but if you are sending multiple bytes i2c.n! might be useful. > > Best wishes, > Tristan > > On 09Nov18 19:21, Jan Kromhout wrote: >> Hi, >> >> This is my first step on the I2C road. >> I have a Gravitech shield for the Arduino, that work well. >> The code is very simple, and I have translate it to Forth. >> The display is not working. >> I include the Forth code. What is wrong? >> Thangs for any help. >> >> Cheers, >> >> Jan >> >> \ Gravitech display, I2C Generic >> >> marker --gravitech-- >> >> $38 constant 7SEG \ I2C address for 7-Segment >> >> / Configure 7-Segment to 12mA segment output current, Dynamic mode, >> / and Digits 1, 2, 3 AND 4 are NOT blanked >> >> : init7SEG >> 7SEG i2c.begin >> 0 7SEG i2c.c! >> %01000111 7SEG i2c.c! >> i2c.end >> ; >> >> : Send7SEG ( Digit Number ) >> 7SEG i2c.begin >> swap 7SEG i2c.c! \ Digit >> 7SEG i2c.c! \ Number >> i2c.end >> ; >> >> >> /* Configure 7-Segment to 12mA segment output current, Dynamic mode, >> and Digits 1, 2, 3 AND 4 are NOT blanked */ >> >> Wire.beginTransmission(_7SEG); >> Wire.write(0); >> Wire.write(B01000111); >> Wire.endTransmission(); >> >> >> /*************************************************************************** >> Function Name: Send7SEG >> >> Purpose: >> Send I2C commands to drive 7-segment display. >> ****************************************************************************/ >> >> void Send7SEG (byte Digit, byte Number) >> { >> Wire.beginTransmission(_7SEG); >> Wire.write(Digit); >> Wire.write(Number); >> Wire.endTransmission(); >> } >> >> >> _______________________________________________ >> Amforth-devel mailing list for http://amforth.sf.net/ >> Amf...@li... >> https://lists.sourceforge.net/lists/listinfo/amforth-devel >> > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Jan K. <jan...@ic...> - 2018-11-10 16:26:51
|
Hello, Where can I download the software of the articles of Clock Works. The link https://wiki.forth-ev.de/doku.php/projects:clockworks <https://wiki.forth-ev.de/doku.php/projects:clockworks> gives the message. Dieses Thema existiert noch nicht Cheers, Jan |
From: Tristan W. <ho...@tj...> - 2018-11-10 16:15:40
|
Jan, Have a look at the source your-amforth/common/lib/hardware/i2c.frt and the comments at the top of the file. i2c.c! i2c.c@ i2c.n! i2c.n@ i2c.m!n@ already have the i2c.begin and i2c.end within the respective word. I don't know the Gravitech shield but if you are sending multiple bytes i2c.n! might be useful. Best wishes, Tristan On 09Nov18 19:21, Jan Kromhout wrote: > Hi, > > This is my first step on the I2C road. > I have a Gravitech shield for the Arduino, that work well. > The code is very simple, and I have translate it to Forth. > The display is not working. > I include the Forth code. What is wrong? > Thangs for any help. > > Cheers, > > Jan > > \ Gravitech display, I2C Generic > > marker --gravitech-- > > $38 constant 7SEG \ I2C address for 7-Segment > > / Configure 7-Segment to 12mA segment output current, Dynamic mode, > / and Digits 1, 2, 3 AND 4 are NOT blanked > > : init7SEG > 7SEG i2c.begin > 0 7SEG i2c.c! > %01000111 7SEG i2c.c! > i2c.end > ; > > : Send7SEG ( Digit Number ) > 7SEG i2c.begin > swap 7SEG i2c.c! \ Digit > 7SEG i2c.c! \ Number > i2c.end > ; > > > /* Configure 7-Segment to 12mA segment output current, Dynamic mode, > and Digits 1, 2, 3 AND 4 are NOT blanked */ > > Wire.beginTransmission(_7SEG); > Wire.write(0); > Wire.write(B01000111); > Wire.endTransmission(); > > > /*************************************************************************** > Function Name: Send7SEG > > Purpose: > Send I2C commands to drive 7-segment display. > ****************************************************************************/ > > void Send7SEG (byte Digit, byte Number) > { > Wire.beginTransmission(_7SEG); > Wire.write(Digit); > Wire.write(Number); > Wire.endTransmission(); > } > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel > |
From: Jan K. <kro...@ho...> - 2018-11-09 22:06:08
|
Hello Erich, The i2c scanner is seeing $38, should i still shift to $70? Cheers Jan Verstuurd vanaf mijn iPad > Op 9 nov. 2018 om 22:30 heeft Jan Kromhout via Amforth-devel <amf...@li...> het volgende geschreven: > > Thanks Erich, > > Do I need this to start every time I use I2C > > i2c.init.default > > Cheers, > > Jan > >> Op 9 nov. 2018, om 20:56 heeft Erich Wälde <ew....@na...> het volgende geschreven: >> >> Hello Jan, >> >> your i2c address: "$38", is this the 7bit address? You might >> need to shift it by one position to "$70". >> >> Just an idea. >> Cheers, >> Erich >> >> Jan Kromhout writes: >> >>> Hi, >>> >>> This is my first step on the I2C road. >>> I have a Gravitech shield for the Arduino, that work well. >>> The code is very simple, and I have translate it to Forth. >>> The display is not working. >>> I include the Forth code. What is wrong? >>> Thangs for any help. >>> >>> Cheers, >>> >>> Jan >>> >>> \ Gravitech display, I2C Generic >>> >>> marker --gravitech-- >>> >>> $38 constant 7SEG \ I2C address for 7-Segment >>> >>> / Configure 7-Segment to 12mA segment output current, Dynamic mode, >>> / and Digits 1, 2, 3 AND 4 are NOT blanked >>> >>> : init7SEG >>> 7SEG i2c.begin >>> 0 7SEG i2c.c! >>> %01000111 7SEG i2c.c! >>> i2c.end >>> ; >>> >>> : Send7SEG ( Digit Number ) >>> 7SEG i2c.begin >>> swap 7SEG i2c.c! \ Digit >>> 7SEG i2c.c! \ Number >>> i2c.end >>> ; >>> >>> >>> /* Configure 7-Segment to 12mA segment output current, Dynamic mode, >>> and Digits 1, 2, 3 AND 4 are NOT blanked */ >>> >>> Wire.beginTransmission(_7SEG); >>> Wire.write(0); >>> Wire.write(B01000111); >>> Wire.endTransmission(); >>> >>> >>> /*************************************************************************** >>> Function Name: Send7SEG >>> >>> Purpose: >>> Send I2C commands to drive 7-segment display. >>> ****************************************************************************/ >>> >>> void Send7SEG (byte Digit, byte Number) >>> { >>> Wire.beginTransmission(_7SEG); >>> Wire.write(Digit); >>> Wire.write(Number); >>> Wire.endTransmission(); >>> } >>> >>> >>> _______________________________________________ >>> Amforth-devel mailing list for http://amforth.sf.net/ >>> Amf...@li... >>> https://lists.sourceforge.net/lists/listinfo/amforth-devel >> >> >> -- >> May the Forth be with you ... >> >> >> _______________________________________________ >> Amforth-devel mailing list for http://amforth.sf.net/ >> Amf...@li... >> https://lists.sourceforge.net/lists/listinfo/amforth-devel > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Jan K. <jan...@ic...> - 2018-11-09 21:31:17
|
Thanks Erich, Do I need this to start every time I use I2C i2c.init.default Cheers, Jan > Op 9 nov. 2018, om 20:56 heeft Erich Wälde <ew....@na...> het volgende geschreven: > > Hello Jan, > > your i2c address: "$38", is this the 7bit address? You might > need to shift it by one position to "$70". > > Just an idea. > Cheers, > Erich > > Jan Kromhout writes: > >> Hi, >> >> This is my first step on the I2C road. >> I have a Gravitech shield for the Arduino, that work well. >> The code is very simple, and I have translate it to Forth. >> The display is not working. >> I include the Forth code. What is wrong? >> Thangs for any help. >> >> Cheers, >> >> Jan >> >> \ Gravitech display, I2C Generic >> >> marker --gravitech-- >> >> $38 constant 7SEG \ I2C address for 7-Segment >> >> / Configure 7-Segment to 12mA segment output current, Dynamic mode, >> / and Digits 1, 2, 3 AND 4 are NOT blanked >> >> : init7SEG >> 7SEG i2c.begin >> 0 7SEG i2c.c! >> %01000111 7SEG i2c.c! >> i2c.end >> ; >> >> : Send7SEG ( Digit Number ) >> 7SEG i2c.begin >> swap 7SEG i2c.c! \ Digit >> 7SEG i2c.c! \ Number >> i2c.end >> ; >> >> >> /* Configure 7-Segment to 12mA segment output current, Dynamic mode, >> and Digits 1, 2, 3 AND 4 are NOT blanked */ >> >> Wire.beginTransmission(_7SEG); >> Wire.write(0); >> Wire.write(B01000111); >> Wire.endTransmission(); >> >> >> /*************************************************************************** >> Function Name: Send7SEG >> >> Purpose: >> Send I2C commands to drive 7-segment display. >> ****************************************************************************/ >> >> void Send7SEG (byte Digit, byte Number) >> { >> Wire.beginTransmission(_7SEG); >> Wire.write(Digit); >> Wire.write(Number); >> Wire.endTransmission(); >> } >> >> >> _______________________________________________ >> Amforth-devel mailing list for http://amforth.sf.net/ >> Amf...@li... >> https://lists.sourceforge.net/lists/listinfo/amforth-devel > > > -- > May the Forth be with you ... > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Erich W. <ew....@na...> - 2018-11-09 20:12:13
|
Hello Jan, your i2c address: "$38", is this the 7bit address? You might need to shift it by one position to "$70". Just an idea. Cheers, Erich Jan Kromhout writes: > Hi, > > This is my first step on the I2C road. > I have a Gravitech shield for the Arduino, that work well. > The code is very simple, and I have translate it to Forth. > The display is not working. > I include the Forth code. What is wrong? > Thangs for any help. > > Cheers, > > Jan > > \ Gravitech display, I2C Generic > > marker --gravitech-- > > $38 constant 7SEG \ I2C address for 7-Segment > > / Configure 7-Segment to 12mA segment output current, Dynamic mode, > / and Digits 1, 2, 3 AND 4 are NOT blanked > > : init7SEG > 7SEG i2c.begin > 0 7SEG i2c.c! > %01000111 7SEG i2c.c! > i2c.end > ; > > : Send7SEG ( Digit Number ) > 7SEG i2c.begin > swap 7SEG i2c.c! \ Digit > 7SEG i2c.c! \ Number > i2c.end > ; > > > /* Configure 7-Segment to 12mA segment output current, Dynamic mode, > and Digits 1, 2, 3 AND 4 are NOT blanked */ > > Wire.beginTransmission(_7SEG); > Wire.write(0); > Wire.write(B01000111); > Wire.endTransmission(); > > > /*************************************************************************** > Function Name: Send7SEG > > Purpose: > Send I2C commands to drive 7-segment display. > ****************************************************************************/ > > void Send7SEG (byte Digit, byte Number) > { > Wire.beginTransmission(_7SEG); > Wire.write(Digit); > Wire.write(Number); > Wire.endTransmission(); > } > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel -- May the Forth be with you ... |
From: Jan K. <kro...@ho...> - 2018-11-09 19:22:00
|
Hi, This is my first step on the I2C road. I have a Gravitech shield for the Arduino, that work well. The code is very simple, and I have translate it to Forth. The display is not working. I include the Forth code. What is wrong? Thangs for any help. Cheers, Jan \ Gravitech display, I2C Generic marker --gravitech-- $38 constant 7SEG \ I2C address for 7-Segment / Configure 7-Segment to 12mA segment output current, Dynamic mode, / and Digits 1, 2, 3 AND 4 are NOT blanked : init7SEG 7SEG i2c.begin 0 7SEG i2c.c! %01000111 7SEG i2c.c! i2c.end ; : Send7SEG ( Digit Number ) 7SEG i2c.begin swap 7SEG i2c.c! \ Digit 7SEG i2c.c! \ Number i2c.end ; /* Configure 7-Segment to 12mA segment output current, Dynamic mode, and Digits 1, 2, 3 AND 4 are NOT blanked */ Wire.beginTransmission(_7SEG); Wire.write(0); Wire.write(B01000111); Wire.endTransmission(); /*************************************************************************** Function Name: Send7SEG Purpose: Send I2C commands to drive 7-segment display. ****************************************************************************/ void Send7SEG (byte Digit, byte Number) { Wire.beginTransmission(_7SEG); Wire.write(Digit); Wire.write(Number); Wire.endTransmission(); } |
From: Jan K. <kro...@ho...> - 2018-11-09 17:59:57
|
Thanks again Matthias! > Op 9 nov. 2018, om 18:57 heeft Matthias Trute <mt...@we...> het volgende geschreven: > > Am Freitag, den 09.11.2018, 15:49 +0000 schrieb Jan Kromhout: >> Hi, >> >> I wont testing amForth on the Leonardo. >> What are are the fuse settings for the Leonardo? > > The Makefile in appl/arduino contains some lines starting > with leonardo, that's probably a start. > > Matthias > > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Matthias T. <mt...@we...> - 2018-11-09 17:58:00
|
Am Freitag, den 09.11.2018, 15:49 +0000 schrieb Jan Kromhout: > Hi, > > I wont testing amForth on the Leonardo. > What are are the fuse settings for the Leonardo? The Makefile in appl/arduino contains some lines starting with leonardo, that's probably a start. Matthias |
From: Jan K. <kro...@ho...> - 2018-11-09 15:50:10
|
Hi, I wont testing amForth on the Leonardo. What are are the fuse settings for the Leonardo? Cheers, Jan |
From: Matthias T. <mt...@we...> - 2018-11-06 18:04:13
|
Am Dienstag, den 06.11.2018, 17:41 +0000 schrieb Jan Kromhout: > Hi, > > When I use for example gforth I can use the c, word. I wont to use > this also in amForth in combination with c@. It's a bit more complex... , (comma) appends to the dictionary in flash memory. c@ cannot access the flash address space, the hardware is Harvard oriented. It would require a c@i word. But: A flash address contains a 16bit word, not only a byte. That makes it possible to have a flash dictionary of 128KB with a 16 bit address. A c@i would have to use 17bit addresses (16bit normal plus one bit to distinguish between upper and lower byte of the word). > The word c, is not available, how to do this. I think this is a good > way to use not so much memory. You may want to read the code for the string compilations. It's not trivial but works and offers the "compaction" of bytes (characters) into the bigger flash address elements. look for itype and s, or the heaeder construction words. The assembly syntax should be easy to understand. Matthias |
From: Jan K. <kro...@ho...> - 2018-11-06 17:42:06
|
Hi, When I use for example gforth I can use the c, word. I wont to use this also in amForth in combination with c@. The word c, is not available, how to do this. I think this is a good way to use not so much memory. Thanks for any help. Cheers, Jan \ Segment byte maps for numbers 0 to 9 create Segment_Map_Digit $C0 c, $F9 c, $A4 c, $B0 c, $99 c, $92 c, $82 c, $F8 c, $80 c, $90 c, |
From: Jan K. <jan...@ic...> - 2018-11-05 19:56:35
|
Hi, Thanks Mathias, problem is solved. My application is running as it should. Cheers, Jan > Op 5 nov. 2018, om 20:04 heeft Matthias Trute <mt...@we...> het volgende geschreven: > > Hi, > >> When I do the command $1d c@ . I get a value of 0001000. How is that >> possible? Or do I something wrong? > > Historically Atmel defined 32 special addresses > that together with > certain opcodes that are used for > some IO or CPU relevant things (e.g. > the machine > status register which is one of them). They are mapped > into > the "normal" memory addresses with an offset > of 32 (0x20). "real" RAM > memory starts at address > $40 (32 registers and 32 IO registers). > > The lowest 32 "memory" addresses are used for the > CPU registers itself. $1d is part of the Y register > pair amforth uses as data stack pointer. > > HTH > Matthias > > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |