Another Picaxe Stopwatch

Rick100

Senior Member
Hi Rick
I have tried 2 different chips - however, they have been kicking around for 10 years or so, and might have encountered something that killed them! I will buy a new picaxe and bin these old ones :(
My experience is that these chips are hard to destroy. In PE5 there is an option to set the resonator speed to match the resonator your using. I haven't found it in PE 6. Also have you tried a hard reset?
 

hippy

Technical Support
Staff member
I recall the 40X expects a 4MHz resonator but can be used with 8MHz or 16MHz. However, I do not believe PE6 supports non-4MHz operation of the 28X and 40X. It would be best to start with a 4MHz resonator.

28X and 40X are obsolete products and it would be recommended to use a more modern PICAXE. Those will be a lot less lot problematic to work with.

I would also remove that LED from you circuit or add a current limiting resistor.
 

tarantulataramasalata

Senior Member
That's very helpful Rick, thanks again. The table for determining the resistor value for Rset only goes up to 3.5v input, rather than the native 4.5v I was hoping to use for the whole gig. Also, I am using some old 7 segment LEDs I have had for a while, which I assume are 20ma. Do you know how I might determine a resistor value for these?

Will the MAX7219 show leading zeros whilst counting?

How will the decimal point work - should I power that independently straight from the Picaxe?

(Sorry if these answers are available in the tutorial! I know that forums are reluctant to help with laziness; I hope they are more amenable to dumbness! ;) )
 
Last edited:

Rick100

Senior Member
That's very helpful Rick, thanks again. The table for determining the resistor value for Rset only goes up to 3.5v input, rather than the native 4.5v I was hoping to use for the whole gig. Also, I am using some old 7 segment LEDs I have had for a while, which I assume are 20ma. Do you know how I might determine a resistor value for these?
The voltage values in the table refer to the forward voltage of the leds not the power supply voltage. If you don't know the forward voltage, you will probably be safe with a 33K or higher resistor.

Will the MAX7219 show leading zeros whilst counting?

How will the decimal point work - should I power that independently straight from the Picaxe?
The MAX7219 can can light up any segment or decimal point. The chip is designed to light up an array of leds, so any led hooked to it can be turned on or off . It includes a decoder for displaying numbers or can be sent raw data. The code by westaust55 can blank the leading zeros and turn on the decimal points. He has some demo code for a 40X1 in the tutorial page. If your running a 40X you can probably just load it up and try it. It's important that you hook the leds up in the right order for the decoding to work. The code can look intimidating at first but in your application you will probably be able to trim some of the features out.

I have an ebay MAX7219 module with eight 7segment leds hooked up to an 08M2 running westaust55s code. They are both on the same 5V power bank I'm using as a power supply. I'm only displaying numbers on 4 digits. I just put a charge doctor on it and it's drawing about .090 amps.

I'm glad i have the module. Wiring 4 displays on a breadboard doesn't sound like fun.

Good luck,
Rick
 

tarantulataramasalata

Senior Member
Wrestling with Blockly

I am trying to make the code in blockly for 2 reasons. First, it's easier for a noob. Second, ima teach some kids how to do it and I think blockly is very accessible. They also use Scratch so they are familiar with the interface.

It may be cumbersome, but I would like to try and use it. My first beef is that when I run a simulation of a program, it says that there's an error with the 'highlighted block'. I can't see which one it is highlighting - can you help? (...unless they are all highlighted, which isn't much help!)

Thanks

Thanksblockly eror.jpg
 
Last edited:

hippy

Technical Support
Staff member
If you can attach your Blockly program .XML file we can check to see if we get the same error and can analyse what may be causing it.
 

hippy

Technical Support
Staff member
Click "Reply", then click "Go Advanced", then "Manage attachments" and add the file.
 

hippy

Technical Support
Staff member
I will make a note that .XML files cannot currently be uploaded, see if we can get that added.

Changing the extension to something supported usually works, and putting it in a .ZIP file should always work.
 

tarantulataramasalata

Senior Member
Yes of course, I missed the zip option.

This is the first part of the program. My son has studied coding and his advice is to start small with something that works on the simulator, and grow it from there. However, I seem to run into simulation issues quite quickly, and the fault finding feature is similarly unhelpful ie. I can't identify where the problem is.

Any help gratefully received!

View attachment F1 gates 1.0.zip
 

hippy

Technical Support
Staff member
Blockly does not support the 40X

The main issue seems to be with the use of "PWMout" as a subroutine name. This conflicts with the name of the PWMOUT command. Even with that altered there will likely be additional issues which present themselves if attempting to use Blockly with a 40X.
 

Rick100

Senior Member
If you just want to get some experience with the simulator, you can change the Picaxe to 40X2 in PE6. You can step through your program, set the inputs manually and see how your code responds.

Good luck,
Rick
 

tarantulataramasalata

Senior Member
I will make a note that we need to better deal with the situation
Thanks very much! Whilst you're at it - how about a control/shift click multi-block select feature? Mouse-scroll pan for Y-axis? Alt-scroll for x-axis?

I think the file might have been corrupt. We replicated the thing in a new file and it seemed to work fine with a 40X2. Do you think that I can program a 40X from blockly?
 

hippy

Technical Support
Staff member
Do you think that I can program a 40X from blockly?
Not easily. The best you can do is create the program for a 40X1 or 40X2, then modify the 'converted to basic program' to make it work for a 40X. You will have to do that every time you change the Blockly program. That will likely soon get tiresome.
 

tarantulataramasalata

Senior Member
It seems that merely selecting the 40X in Blockly causes an error, so as discussed earlier, having it available for selection should perhaps be avoided.

As also mentioned earlier, I have had these 40X chips for a good ten years, and I am eager to use them. Tweaking the text before downloading will be satisfactory for the one time, I hope.

Further suggestion - allow permanent hiding of the 'Any blocks not connected to a start block have been ignored'?

Thanks again for all help to date! (It's gone quiet whilst a wrestle with the programming!) :)
 

tarantulataramasalata

Senior Member
Blockly Wrestling

Does the Blockly Simulation run at the speed that a Picaxe will run it? In the enclosed image of a program, I have done a loop that I hope will flick around watching the triggers (D2 & 3) to note if they full start. I can tweak the value 3000 to suit, however in the simulation the Sid variable count needs to be 5 for a 3 second pause. Can you help?

Also, I would like a random 3 - 6 second pause before the lights go out. I read in the manual that 'random' will select a number between 0 and 65530 (or thereabouts). By dividing this by 10 I can get quite close to 6 seconds. Then using this value for miliseconds pause should give the delay I require. However, this always seem to return the same value of 0. Any ideas?

Many thanks.


Blockly prob II.jpg
 

Rick100

Senior Member
Does the Blockly Simulation run at the speed that a Picaxe will run it? In the enclosed image of a program, I have done a loop that I hope will flick around watching the triggers (D2 & 3) to note if they full start. I can tweak the value 3000 to suit, however in the simulation the Sid variable count needs to be 5 for a 3 second pause. Can you help?
I'm not a Blockly expert but I don't think the simulation speed has anything to do with the speed it will run on a real chip. After you start the simulation running you will see a slider on the lower right of the screen that can adjust the simulation delay to make the simulation run faster. After you get it running on a real chip, you can adjust the timing.

Also, I would like a random 3 - 6 second pause before the lights go out. I read in the manual that 'random' will select a number between 0 and 65530 (or thereabouts). By dividing this by 10 I can get quite close to 6 seconds. Then using this value for miliseconds pause should give the delay I require. However, this always seem to return the same value of 0. Any ideas?

Many thanks.
Random usually has to be seeded with an initial value or you get the same sequence of numbers.
http://www.picaxe.com/BASIC-Commands/Variables/random/

It looks like your making progress.

Good luck,
Rick
 

tarantulataramasalata

Senior Member
Thanks Rick. I guess we might only know by dumping it on to the chip and seeing what happens! I now have caps for the MAX7219 so I'll give it a go.

The random thing might be tricky - any ideas how to generate a random number?

One thing - how do I alter the program for the 40X? I guess I have to convert the blockly to text, then edit the text. Here it is:

'BASIC converted from file:
'F1 gates 3.0.xml
'Converted 2016-11-20 at 18:29:42

symbol FS1 = w0
symbol FS2 = w1
symbol LitePause = w2
symbol RanDum = w3
symbol Sid = w4
symbol StartLights = w5
symbol D.0 = 0
symbol D.1 = 1
symbol D.2 = 2
symbol D.3 = 3
symbol D.4 = 4
symbol D.5 = 5
symbol D.6 = 6
symbol D.7 = 7

main:
do
for Sid = 0 to 3000 step 1
if pinD.2 = 1 then
high B.6
let FS1 = 1
endif
if pinD.3 = 1 then
high B.7
let FS2 = 1
endif
pause 1
next Sid
let StartLights = StartLights + 1
if StartLights = 1 then
high B.1
endif
if StartLights = 2 then
high B.2
endif
if StartLights = 3 then
high B.3
endif
if StartLights = 4 then
high B.4
endif
if StartLights = 5 then
high B.5
endif
loop until StartLights = 5
random RanDum
let LitePause = RanDum / 10
pause 3000
pause LitePause
low B.1
low B.2
low B.3
low B.4
low B.5
stop
 
Last edited:

Rick100

Senior Member
The 40X was before my Picaxe experience. Look in Manual 1. The 2 areas you will need to read are 'Input / Output Pin Naming Conventions' and 'Appendix F – Configuring the obsolete 40X/40X1 I/O Pins'. It looks like the 40X has some pins that are only outputs and some that are only inputs.You may have to rearrange some of your pins. I don't think the conversion will be an easy task you will want to do repeatedly, as Hippy eluded to earlier. Some of the old timers who have actually used the chip may have some advice. In my opinion, if your time and sanity mean anything to you, then buy a 40X2. Your life will be a lot easier. Like I said before it looks like your making progress with the simulator.

To seed the random number generator, you can read an unconnected adc channel value into your ranDum variable at the very start of the program. It was my understanding you were going to hook the MAX7219 up to an 08M2. Is that still the plan?

Good luck,
Rick
 

Rick100

Senior Member
I was able to convert your program to a 40X. It wasn't as hard as I thought it would be.
Code:
'BASIC converted from file:
'F1 gates 3.0.xml
'Converted 2016-11-20 at 18:29:42

symbol FS1 = w0
symbol FS2 = w1
symbol LitePause = w2
symbol RanDum = w3
symbol Sid = w4
symbol StartLights = w5
symbol D.0 = 0
symbol D.1 = 1
symbol D.2 = 2
symbol D.3 = 3
symbol D.4 = 4
symbol D.5 = 5
symbol D.6 = 6
symbol D.7 = 7

main:
do
'for Sid = 0 to 3000 step 1
for Sid = 0 to 50 step 1	'changed for simulation
if pin2 = 1 then
high 6
let FS1 = 1
endif
if pin3 = 1 then
high 7
let FS2 = 1
endif
pause 1
next Sid
let StartLights = StartLights + 1
if StartLights = 1 then
high 1
endif
if StartLights = 2 then
high 2
endif
if StartLights = 3 then
high 3
endif
if StartLights = 4 then
high 4
endif
if StartLights = 5 then
high 5
endif
loop until StartLights = 5
random RanDum
let LitePause = RanDum / 10
pause 3000
pause LitePause
low 1
low 2
low 3
low 4
low 5
stop
It simulates successfully.

Good luck,
Rick
 

hippy

Technical Support
Staff member
The random thing might be tricky - any ideas how to generate a random number?[/code]

Just uses the "Set [Var] to random" block. That will give you a pseudo-random number between 0 and 65535 in the variable. Don't assign to that variable or it may adversely affect the randomness.

One thing - how do I alter the program for the 40X? I guess I have to convert the blockly to text, then edit the text.
You should add the following to the top of your Basic program -

Code:
#Picaxe 40X
Symbol pinD.0 = pin0
Symbol pinD.1 = pin1
Symbol pinD.2 = pin2
Symbol pinD.3 = pin3
Symbol pinD.4 = pin4
Symbol pinD.5 = pin5
Symbol pinD.6 = pin6
Symbol pinD.7 = pin7
 

tarantulataramasalata

Senior Member
Thanks very much for info on the conversion.

Can anyone help with the Din and Load pins on the MAX7219? I understand the clock is the pwmout from the Picaxe, but not sure about the other 2.

Thanks again.
 

tarantulataramasalata

Senior Member
(Can you tell my deadline is looming?!)

More question: The existing Start Gate uses 12v, and the start pods are solenoids firing a pin into the CO2 gas cartridge.

Who votes for a relay from the Picaxe to do this, and who prefers something like a TIP31a?

Thanks
 

Rick100

Senior Member
Can anyone help with the Din and Load pins on the MAX7219? I understand the clock is the pwmout from the Picaxe, but not sure about the other 2.
I just looked back to your drawing in post #14. I think you may have a misunderstanding of the MAX7219. It will have to be driven by it's own Picaxe. It will work like your drawing in post #3, but the MAX7219 will do all the led driving. Each 08M2, one for each display, will have a pwm signal from the master Picaxe. The master Picaxe will then bring a line high for the duration it wants timed. The 08M2 will time the pulse and display the results through the MAX7219. I sounds complicated but here's the code for the 08M2.

Code:
'Picaxe 08m2
'polls pwm signal from master picaxe to get 1/2000th of a second resolution

'pwm signal from master picaxe to timer picaxe pin C.2 (leg 5)

'run signal from master picaxe to timer picaxe pin C.3(leg 3) is normally low / high means run the timer

'MAX7219 code from westaust55 tutorial
'MAX7219 DIn on C.0(leg7)
'MAX7219 LOAD(also called CS) on C.1(leg6)
'MAX7219 CLK on C.4(leg3)

'Max7219 code by westaust55

#picaxe 08m2
'#terminal 38400	'for sertxd to work at M32
#no_data

setfreq M32		'run as fast as possible

; MAX7219 Registers - Note we are only using 4 of the 8 possible 7-seg digits
SYMBOL No_Op	= 0
SYMBOL Digit0	= 1
SYMBOL Digit1	= 2
SYMBOL Digit2	= 3
SYMBOL Digit3	= 4 ; for more digits, dig4 thru dig7 = 5 to 8 respectively
SYMBOL Decode	= 9
SYMBOL Intens	= 10
SYMBOL ScanLim	= 11
SYMBOL ShutDwn	= 12
SYMBOL DigTest	= 15
;
; MAX7219 Data Constants 
SYMBOL Set_Off	= 0
SYMBOL Set_On 	= 1
SYMBOL No_Digits	= 3 	; Scan limit for digits 0 to 3 = 4
SYMBOL Dec_Digits = 15	; decode digits 0 to 3 according to "code B"
SYMBOL Init_Inten = 8	; 0 (=1/32 PWM on time) to 15 (=31/32 PWM on time)
SYMBOL DigBlank	= 15	; "Code B" value to black a digit
SYMBOL DecimPnt	= 128 ; Add this value to a digit value/code when we want the demical point illuminated

SYMBOL Decimal	= 10
SYMBOL Hexadec	= 16


; Define variables
SYMBOL Data_7219	= b0	'bits 7-0
SYMBOL Register	= b1	'bits 15-8

SYMBOL Counter	= w2 ; w2 = b5:b4
SYMBOL Thous	= b6
SYMBOL Hundr	= b7
SYMBOL Tens		= b8
SYMBOL Units	= b9
SYMBOL Blanking	= b10
SYMBOL Base		= b11

SYMBOL dummy = b12


SYMBOL PWM_in = pinC.2			'2 KHz signal from master
SYMBOL run_signal = pinC.3 	' Start signal; 1=start

; Control signal lines from PICAXE to MAX7219
SYMBOL DIn_7219	= pinC.0	'leg 7
SYMBOL Load_7219	= C.1		'leg 6
SYMBOL Clk_7219	= C.4		'leg 3

	disabletime	'might help
	disconnect

Init:
	dirsc = %00010011	' C.0,C.1,C.4 outputs
	LOW Load_7219
	LOW Clk_7219
	DIn_7219 = 0
	
	Base = Decimal
	Blanking = Set_On
	
	GOSUB Initialise7219
	GOSUB DisplayTest
	
	
'-----------------------------------Timer code -------------------------------------------------------
top:
	counter = 0			' Clear timer

hold:
	if run_signal = 0 then hold
		
timing:

	if run_signal = 0 then finish 	' If run signal goes low were done timing
here:
	inc counter
	pulsin C.2,0,dummy	'wait until trailing edge of pulse
	goto timing 			' Loop until race over.

finish:
	counter = counter / 2	'adjust for 2KHz clock
	if counter < 5 then	'less than .005 seconds resets the display to all zeros
		counter = 0
	endif

	'sertxd(#counter,13,10)

	GOSUB CalcDigits
  	Thous = Thous OR DecimPnt ; turn on the decimal point for digit0 just to show how it can be done
	GOSUB SetDigitDisplay
	
	counter = 0			' Clear timer
	goto hold
'-------------------------------end of Timer code-----------------------------------------------------
	
	
;===============================================
; Subroutines
;===============================================

; Subroutine to initialise the MAX7219 7-Seg LED display driver
Initialise7219:
	Register = Decode	 : Data_7219 = Dec_Digits : GOSUB ShiftTo7219
	Register = Intens	 : Data_7219 = Init_Inten : GOSUB ShiftTo7219
	Register = ScanLim : Data_7219 = No_Digits  : GOSUB ShiftTo7219
	Register = ShutDwn : Data_7219 = Set_On 	  : GOSUB ShiftTo7219
	Register = DigTest : Data_7219 = Set_Off	  : GOSUB ShiftTo7219

; subroutine to send the data for display on the 4 digits to the MAX7219
; leading zero blanking applied when the blanking flag is set to "on"
SetDigitDisplay:
 	IF Blanking = Set_On THEN
 	   IF base = decimal THEN
 		IF Thous = 0 THEN
 		   Thous = DigBlank
 		   IF Hundr = 0 THEN
 		      Hundr = DigBlank
 		      IF Tens = 0 THEN
 		         Tens = DigBlank
 		      ENDIF
 		   ENDIF
 	      ENDIF
 	   ELSEIF base = Hexadec THEN
 		IF Thous = $7E THEN
 		   Thous = 0
 		   IF Hundr = $7E THEN
 		      Hundr = 0
 		      IF Tens = $7E THEN
 		         Tens = 0
 		      ENDIF
 		   ENDIF
 	      ENDIF
 	   ENDIF
 	ENDIF	
	Register = Digit0	 : Data_7219 = Units	: GOSUB ShiftTo7219
	Register = Digit1	 : Data_7219 = Tens	: GOSUB ShiftTo7219
	Register = Digit2	 : Data_7219 = Hundr	: GOSUB ShiftTo7219
	Register = Digit3	 : Data_7219 = Thous	: GOSUB ShiftTo7219
	RETURN

; Subroutine to turn on all LED segments on the display as a test
DisplayTest:
	Register = DigTest : Data_7219 = Set_On	: GOSUB ShiftTo7219
	PAUSE 5000
	Register = DigTest : Data_7219 = Set_Off	: GOSUB ShiftTo7219
	PAUSE 1000
	RETURN

; Subroutine to shift the register address and data value out to the MAX7219
; Tests have identified that the MAX7219 incoming data is clocked in through the lsb towards the msb.
; If only one MAX7219 is conencted then the first four significant bits of data can be ignored to
; improve the data transfer speed by 25%
;
ShiftTo7219:
;	PULSOUT Clk_7219, 1 ; bit 15 is don't care - enable if two or more MAX7219 are cascaded together
;	PULSOUT Clk_7219, 1 ; bit 14 is don't care
;	PULSOUT Clk_7219, 1 ; bit 13 is don't care
;	PULSOUT Clk_7219, 1 ; bit 12 is don't care
	DIn_7219 = bit11 : PULSOUT Clk_7219, 1
	DIn_7219 = bit10 : PULSOUT Clk_7219, 1
	DIn_7219 = bit9 : PULSOUT Clk_7219, 1
	DIn_7219 = bit8 : PULSOUT Clk_7219, 1
	DIn_7219 = bit7 : PULSOUT Clk_7219, 1
	DIn_7219 = bit6 : PULSOUT Clk_7219, 1
	DIn_7219 = bit5 : PULSOUT Clk_7219, 1
	DIn_7219 = bit4 : PULSOUT Clk_7219, 1
	DIn_7219 = bit3 : PULSOUT Clk_7219, 1
	DIn_7219 = bit2 : PULSOUT Clk_7219, 1
	DIn_7219 = bit1 : PULSOUT Clk_7219, 1
	DIn_7219 = bit0 : PULSOUT Clk_7219, 1
	PULSOUT Load_7219, 1 ' minimum high duration is 50 ns -still okay at 64 MHz
	RETURN

; Calculate (Extract) the individual digits for the current value	
CalcDigits:
 	Thous = Counter / Base / Base / Base
 	Hundr = Counter / Base / Base //Base 
 	Tens  = Counter / Base // Base 
 	Units = Counter // Base	
 	RETURN

The program looks long but it's almost all the MAX7219 code from westaust55. The timer runs on an 08M2 and uses pin C.3 (leg 4) as the input for the signal to be timed. The pin should be normally low. The 2 KHz 90% duty cycle clock signal from the master is input on pin C.2 (leg 5). I doubled the frequency from 1 KHz since it was able to keep up. The final count is divided by 2 for display. To reset the display to all zero's , send it a pulse of less than .005 seconds. If times of less than .005 seconds need to be dispalyed, it should be possible to change the display reset to the serin pin. I just liked the simplicity of controlling it with one pin.

The MAX7219 display is driven by the code from westaust55 in his tutorial.

The code for the timing is only 10 lines long. It waits for the signal on C.3 to go high and loops until C.3 goes low. A 16 bit counter is incremented each time through the loop so the maximum length it can time is 65535 / 2 or 32767.5 seconds. No checking is done for overflow. The pulsin command is used for reading the low part of the clock signal. This keeps the loop in sync with the clock without if/then statements. It seems to give accurate results.


Can you tell my deadline is looming?!)

More question: The existing Start Gate uses 12v, and the start pods are solenoids firing a pin into the CO2 gas cartridge.

Who votes for a relay from the Picaxe to do this, and who prefers something like a TIP31a?
In the past, I've used TIP120 Darlington transistors to drive small solenoids because you could buy them at Radio Shack. The TIP120 will probably get hot if you leave it on very long though. It will depend on how much current the solenoid draws. Do you know how much current the solenoids will draw? I don't think a TIP31a will work if driven directly from a Picaxe pin because of the base current required. A logic level mosfet is probably a better choice. Whatever you use, you will need a diode across the solenoid . Here are a couple of webpages that will explain it better than me.

http://bildr.org/2012/03/rfp30n06le-arduino/
http://bildr.org/2011/03/high-power-control-with-arduino-and-tip120/

When is your deadline?

Good luck,
Rick
 

tarantulataramasalata

Senior Member
I think you may have a misunderstanding of the MAX7219.
Oooh dear :( This is becoming less for the faint hearted! Thanks so much for your careful time and help.

Now, with that in mind, and forgive me if I am asking a blindingly obvious question, but a 18M2 has 12 outputs - could I not just run a bank of 7 segment displays from that?!?
 

oracacle

Senior Member
you will need 7+dp outputs for the displays and 1 input for each display - so no as you would need at least 14, 15 if you needed the DP too, a 20m2 could though.

actually scratch that, I just counted 14 outputs one the 18m2, with one input only pin. so yeah you could providing either wire the DP permanently on or leave it off/unconnected.
 

Rick100

Senior Member
Oooh dear:( This is becoming less for the faint hearted!
I didn't mean to scare you off from the MAX7219. When you ask the question about feeding the pwm signal from the Picaxe into its clock pin, I got the impression you thought it would do the timing. I think the chip is a very good match for your project. Is it the complexity of the code your worried about? Some of the code in the program I posted is for displaying hex digits and blanking leading zeros. It was part of westaust55s demo code and I just left it in. It could be trimmed out.

Now, with that in mind, and forgive me if I am asking a blindingly obvious question, but a 18M2 has 12 outputs - could I not just run a bank of 7 segment displays from that?!?
Yes, it takes 12 outputs or 11 if you don't need a decimal point. Here's a project by marks using a 20X2 to drive four 7-segment CA led displays.
http://www.picaxeforum.co.uk/showthread.php?16855-20x2-Led-4-Digit-7-Segment-Metronome&highlight=segment+multip*

Here's another one of his projects use an 18M2 to drive three CA displays.
http://www.picaxeforum.co.uk/showthread.php?20756-CountDown-Timer-3-Digit-7-Segment-reusing-an-axe133-(18m2)

Compared to the MAX7219, the parts count will be higher since each bank(4 digits) will require 8 current limiting resistors and 4 switching transistors with a base resistor for each transistor. The code will probably be more complex than driving the MAX7219. I'm not sure if they would be as brightly lit as the MAX7219. Are you thinking of using the 18M2 to do the timing and drive the leds?

Good luck,
Rick
 

hippy

Technical Support
Staff member
Oooh dear :( This is becoming less for the faint hearted!
Truth is, that no matter how you do it there will be some complexity unless you simply put out 4-bits of data for each digit and use 7-segment drivers which then drive the displays. The 18M2 has 13 outputs and Download Serial Out can be used as another so that option would be possible if you only need a three digit display.

Beyond that you will need to get into multiplexing, charlieplexing or driving external chips which can provide for what you need.

I have lost track of what the system requirements are and what the hardware being used will be.
 
Top