View previous topic :: View next topic |
Author |
Message |
O-Family
Joined: 23 May 2010 Posts: 320 Location: Japan
|
|
Back to top |
|
|
yahi92
Joined: 23 Feb 2014 Posts: 25
|
Posted: Mon Apr 06, 2015 11:11 am Post subject: |
|
|
Hello O-Family
thanks for sharing.
Could you please guid how can I change the program for 1R (single color)P10 module?
thanks. |
|
Back to top |
|
|
O-Family
Joined: 23 May 2010 Posts: 320 Location: Japan
|
Posted: Mon Apr 06, 2015 1:34 pm Post subject: |
|
|
Hi yahi92
What kind of circuit composition is the module?
Are there a catalog of goods and a manual?
O-Family |
|
Back to top |
|
|
yahi92
Joined: 23 Feb 2014 Posts: 25
|
Posted: Mon Apr 06, 2015 2:58 pm Post subject: |
|
|
Thanks for answering
Yes there is schematic.
Thanks again. |
|
Back to top |
|
|
O-Family
Joined: 23 May 2010 Posts: 320 Location: Japan
|
Posted: Tue Apr 07, 2015 1:04 am Post subject: |
|
|
The circuit composition is similar, so there is a possibility that work without change.
I think it can be changed so that it may match your LED by a little change. |
|
Back to top |
|
|
yahi92
Joined: 23 Feb 2014 Posts: 25
|
Posted: Tue Apr 07, 2015 4:18 am Post subject: |
|
|
So could you please help me to change it?
thanks. |
|
Back to top |
|
|
O-Family
Joined: 23 May 2010 Posts: 320 Location: Japan
|
Posted: Tue Apr 07, 2015 10:33 am Post subject: |
|
|
I do not have the P10 LED.
Therefore, at first you operate a program of the RGB LED, please show whether become what result. |
|
Back to top |
|
|
sangwoo
Joined: 19 Nov 2016 Posts: 3
|
Posted: Fri May 04, 2018 2:08 pm Post subject: thanks for sharing!! |
|
|
Hello O-Family
thanks for sharing!!
Is it possible to scan 1/16?
My panel is 1/16 scan with A, B, C, D.
I don\'t know how to code it as ASM |
|
Back to top |
|
|
O-Family
Joined: 23 May 2010 Posts: 320 Location: Japan
|
Posted: Sun May 06, 2018 1:52 pm Post subject: |
|
|
Hi, sangwoo
This project is made for a 16x32 dot panel.
When changing to a 32x32 dot panel, it is necessary to change the drawing subroutine and the interrupt routine greatly.
Many efforts are necessary to correct it from the structure of the display memory.
If you challenge it, I can give you advice.
Best regards
O-Family |
|
Back to top |
|
|
Paulvk
Joined: 28 Jul 2006 Posts: 1257 Location: SYDNEY
|
Posted: Sat May 12, 2018 2:46 pm Post subject: |
|
|
Hello O-Family
A little help with 16 x 64 panels one color it almost works
with Ledcolor = 0 : Ledback = 1
just need to push out 8 characters each time
Regards Paul |
|
Back to top |
|
|
O-Family
Joined: 23 May 2010 Posts: 320 Location: Japan
|
Posted: Sun May 13, 2018 9:04 am Post subject: |
|
|
Hi,Paulvk
Thank you for your comment.
By changing the [Const] line at the beginning of this program, you can connect panels and display 16x32 , 16x64 , 16x96 , 16x128.
Since sangwoo request is 32 dots on the Y axis, it is necessary to double the LED refresh rate. |
|
Back to top |
|
|
Paulvk
Joined: 28 Jul 2006 Posts: 1257 Location: SYDNEY
|
Posted: Mon May 14, 2018 9:10 am Post subject: |
|
|
Hello O-Family
Its not that easy as change constants my display has A , B , C , D connections
the D selects the second line of displays
The first line displays but when the second is to be displayed the D needs to be a high
my display has 74hc595 x 8 for 16 led modules
I am slowly reading through your ASM trying to understand it
I have no experience with assembler yet
but at one time no basic and taught myself
I will keep working and see how I go
Regards Paul |
|
Back to top |
|
|
O-Family
Joined: 23 May 2010 Posts: 320 Location: Japan
|
Posted: Mon May 14, 2018 1:53 pm Post subject: |
|
|
Hi,
I wrote a comment in the assembler code of the interrupt routine.
To set the Y axis to 32 dots, change the part where the row address is set to the port and the maximum value from 8 to 16.
Please question as for the unclear point.
Code: |
'
' ************************************
' * Timer2 Compare Match A interrupt *
' ************************************
'
$notransform On 'Do not automatically correct instructions that use R23 or R0.
'
$asm
Tint2a:
PUSH R2
IN R2,SREG 'Saved status register.
PUSH R0
PUSH R1
PUSH XL
PUSH XH
;
LDS XL,{rowadr} 'Read the row address of the LED buffer.
LDI XH, Ledbuff_Length 'Number of horizontal axis bytes of LED buffer. (32 horizontal dots * number of panels + scroll buffer)
MUL XH,XL 'Calculate the position of the LED buffer.
Loadadr Ledbuff(1) , X 'RGB LED panel The start address of the data buffer.
ADD XL,R0 'Add the row address to the LED buffer.
ADC XH,R1
;
LDS R0,{Transfer_Length} 'The number of bytes to transfer to the LED buffer.
Tint2a1:
LD R1,X+ 'Read lit data from the LED buffer.
Out Panel_rgb , R1 'Set RGB data.
SBI Panel_clk_p, Panel_clk_b 'Set the RGB LED panel [CLK] to [H].
CBI Panel_clk_p, Panel_clk_b 'Set the RGB LED panel [CLK] to [L].
DEC R0
BRNE Tint2a1 'If Transfer end for the number of horizontal axis bytes? Else
;
LDS XL,{rowadr} 'Read row address.
SBI Panel_oe_p, Panel_oe_b 'Set the RGB LED panel [OE] to [H]. (Turn off all LEDs)
SBI Panel_lat_p, Panel_lat_b 'Set the RGB LED panel [LAT] to [H].
CBI Panel_lat_p, Panel_lat_b 'Set the RGB LED panel [LAT] to [L].
;
CBI Panel_a_p, Panel_a_b 'Set the row address to the port.
CBI Panel_b_p, Panel_b_b
CBI Panel_c_p, Panel_c_b
SBRC XL,0
SBI Panel_a_p, Panel_a_b
SBRC XL,1
SBI Panel_b_p, Panel_b_b
SBRC XL,2
SBI Panel_c_p, Panel_c_b
INC XL 'Increase row address.
ANDI XL,$07
STS {rowadr},XL 'Save the row address.
;
POP XH
POP XL
POP R1
POP R0
Out Sreg , R2 'Return status register.
POP R2
CBI Panel_oe_p, Panel_oe_b 'Set the RGB LED panel [OE] to [L].
RETI
$end Asm
'
' ************************************
' * Timer2 Compare Match B interrupt *
' ************************************
'
$asm
Tint2b:
PUSH R24
SBI Panel_oe_p, Panel_oe_b 'Set the RGB LED panel [OE] to [H].
LDI R24,$FF
STS {Ledintf},R24 'Set the LED display interrupt generation flag.
POP R24
RETI
$end Asm
'
$notransform Off
|
|
|
Back to top |
|
|
Paulvk
Joined: 28 Jul 2006 Posts: 1257 Location: SYDNEY
|
Posted: Tue May 15, 2018 12:01 pm Post subject: |
|
|
Hello O-Family
Thank you for making time
the comments help understand what the program is doing
I was beginning to understand it
With my display I need to send the 64 bytes for first row
then bring "D" to high
then send bytes 65 to 128
I only have one color display RED
R1 is the only data input
there are 8 x 74hc595
and two 74hc138 to run the rows
Regards Paul |
|
Back to top |
|
|
O-Family
Joined: 23 May 2010 Posts: 320 Location: Japan
|
Posted: Wed May 16, 2018 12:20 am Post subject: |
|
|
It just changes the DMA cycle from 8 to 16.
According to the structure of the LED buffer, only the bits of Red need be used.
Of course, also need to change the drawing subroutine.
Code: |
;
CBI Panel_a_p, Panel_a_b 'Set the row address to the port.
CBI Panel_b_p, Panel_b_b
CBI Panel_c_p, Panel_c_b
CBI Panel_d_p, Panel_d_b
SBRC XL,0
SBI Panel_a_p, Panel_a_b
SBRC XL,1
SBI Panel_b_p, Panel_b_b
SBRC XL,2
SBI Panel_c_p, Panel_c_b
SBRC XL,3
SBI Panel_d_p, Panel_d_b
INC XL 'Increase row address.
ANDI XL,$0F
STS {rowadr},XL 'Save the row address.
;
|
|
|
Back to top |
|
|
|