Shop OBEX P1 Docs P2 Docs Learn Events
Cascading 7219 chips — Parallax Forums

Cascading 7219 chips

Chris DunnChris Dunn Posts: 5
edited 2009-01-23 21:48 in BASIC Stamp
Need some help with code around the 7219 chips. (Bear with me as I’m still learning the stamp language). I’m basing my project on Jon’s NV article that was published a couple of years ago, but have modified it with 2 5x7 matrix’s and 2 7219 chips. What my end game is to do is take a text (let’s say “Hello World&#8221[noparse];)[/noparse] string a scroll it horizontally across the 2 displays. With Jon’s code, I can get the same data (right now just numbers)·on both displays and other combinations of differet data on the 2 displays.

I think I’m running into 2 issues, the 1st is to lookup the column data for each character in the string from eeprom. The next issues is to take that data and loop across it column by column and have the code output 10 columns (5 columns each) at a time to the 2 chips. Any guidance would be great.

Comments

  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2009-01-22 01:27
    Chris, cascading the display drivers is pretty straight forward and is covered on page 13 of the datasheet. As for cascading in code, you need to SHIFTOUT the data for the 2nd device first (2 bytes) followed by the data for the second device and then you pulse the load line. If you still have questions let me know. Take care.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Engineering
  • Chris DunnChris Dunn Posts: 5
    edited 2009-01-23 20:08
    I have the hardware and I believe I have the understanding of the software site. I can get info sent to the display. Where I’m running into problems is scrolling text horizontally across 2 displays and how to take a text string a do parse it 1 character at a time and take that data, say “A” and lookup data. ·I’m going to do more experimenting this weekend to see what I can figure out. But if you have any info that helps that would be great blush.gif
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2009-01-23 21:48
    There is no doubt it will take some fancy code…unlike a single output you can’t just shift your buffer and update the output…in this case you must update the buffer (or pointers if the data is fixed) and then output each half to the appropriate display driver.· So, assuming you’re looking at fixed data from EEPROM…

    [color=#000000]Sequence DATA “12345678123456781234567812345678”, 0[/color]
    

    So when your pointers are initially set one will be at the address Digits.· The tail pointer will be at Digits + 15.· You will have to output this data as two blocks and then increment your pointer.· If I were doing it I would probably copy Digits into an index variable and used fixed offsets for each block.· So my code (pseudo-code) might be something like:

    [color=#000000]index = Sequence[/color] 
    [color=#000000]DO[/color]
    [color=#000000]  READ index, ioByte[/color]
    [color=#000000]  IF ioByte = 0 THEN EXIT[/color]
    [color=#000000]  FOR digit = index TO index + 7[/color]
    [color=#000000]    READ digit + 8, ioByte[/color]
    [color=#000000]    GOSUB Output_Digit[/color]
    [color=#000000]    READ digit, ioByte[/color]
    [color=#000000]    GOSUB Output_Digit[/color]
    [color=#000000]  NEXT[/color]
    [color=#000000]  index = index + 1[/color]
    [color=#000000]LOOP[/color]
    

    The Output_Digit routine would SHIFTOUT the data in two passes then pulse the LOAD line.·

    Granted I haven’t tested this, but at first glance this should work…you could experiment from there and post a follow up for any additional help you need.· This is just what popped into my head considering your needs. This concept is also simplified for digits, not row/column data.
    ·


    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Engineering
Sign In or Register to comment.