|
|
View previous topic :: View next topic |
Author |
Message |
Ttelmah
Joined: 11 Mar 2010 Posts: 19244
|
|
Posted: Mon Jul 12, 2021 10:08 am |
|
|
You seem to be talking now about two modules, not 15. A very different
amount of data involved. |
|
|
vtrx
Joined: 11 Oct 2017 Posts: 141
|
|
Posted: Mon Jul 12, 2021 3:56 pm |
|
|
Code: | // MATRIZ 8X8 MAX7912
#include<16F628a.H>
#device PASS_STRINGS = IN_RAM
#include "Font8x8_original.h"
#include <string.h>
#fuses NOWDT //No Watch Dog Timer
//#fuses INTRC //Internal RC Osc
#fuses HS
#fuses NOPUT //No Power Up Timer
#fuses NOPROTECT //Code not protected from reading
#fuses NOBROWNOUT //No brownout reset
#fuses NOMCLR //Master Clear pin used for I/O
#fuses NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#fuses NOCPD //No EE protection
#use fast_io(a)
#use fast_io(b)
//#use delay(clock=4000000)
#use delay(clock=20000000)
#use rs232 (baud=9600,rcv=PIN_B1,xmit=PIN_B2,parity=N,bits=8)
#use SPI(DO=PIN_A0,DI=PIN_A3,CLK=PIN_A2,MODE=0,BAUD =270000,BITS=16,msb_first,SAMPLE_RISE,STREAM = max7912)
#define CS PIN_A1
typedef enum
{
REG_NO_OP = 0x0000,
REG_DIGIT_0 = 0x01 << 8,
REG_DIGIT_1 = 0x02 << 8,
REG_DIGIT_2 = 0x03 << 8,
REG_DIGIT_3 = 0x04 << 8,
REG_DIGIT_4 = 0x05 << 8,
REG_DIGIT_5 = 0x06 << 8,
REG_DIGIT_6 = 0x07 << 8,
REG_DIGIT_7 = 0x08 << 8,
REG_DECODE_MODE = 0x09 << 8,
REG_INTENSITY = 0x0A << 8,
REG_SCAN_LIMIT = 0x0B << 8,
REG_SHUTDOWN = 0x0C << 8,
REG_DISPLAY_TEST = 0x0F << 8,
} MAX7219_REGISTERS;
boolean completo;
char texto[15];
unsigned int16 txt0,txt1,txt2,txt3,txt4,txt5,txt6,txt7,txt8,txt9,txt10,txt11,txt12,txt13,txt14;
int8 posi_rs232;
void sendData(int16 data);
void max7219_clean(int8 MaxCi);
//void MAX_SendString(char *str);
void MAX_SendString();
void escreve_texto(void);
void max7219_init(unsigned int8 intensivity,unsigned int8 Modulos);
//-------------------------------------------------------------
#int_rda
void rda_isr(void)
{
texto[posi_rs232] = getc();
posi_rs232++;
if(posi_rs232==15) //15 max7912
{
posi_rs232 = 0;
completo = 1;
}
}
//------------------------------------------------------------------
void sendData(unsigned int16 data)
{
spi_xfer(max7912,data);
output_low(CS);
output_high(CS);
}
//---------------------------------------------------------------
void max7219_clean(unsigned int8 MaxCi)
{
int16 Mods;
for(Mods=0;Mods<MaxCi-1;Mods++){spi_xfer(max7912,REG_NO_OP);} //SEMPRE -1 QUANTIDADE DE MODULOS
for(Mods=0;Mods<MaxCi;Mods++)
{
sendData(REG_DIGIT_0 | 0x00);
sendData(REG_DIGIT_1 | 0x00);
sendData(REG_DIGIT_2 | 0x00);
sendData(REG_DIGIT_3 | 0x00);
sendData(REG_DIGIT_4 | 0x00);
sendData(REG_DIGIT_5 | 0x00);
sendData(REG_DIGIT_6 | 0x00);
sendData(REG_DIGIT_7 | 0x00);
}
}
/*
//---------------------------------------------------------------
void MAX_SendString(char *str)
{
int8 i=0;
while(*str)
{
texto[i++]=*(str++);
if (i == 15) break;
}
txt0=(int16)(texto[0]-32)*8;
txt1=(int16)(texto[1]-32)*8;
txt2=(int16)(texto[2]-32)*8;
txt3=(int16)(texto[3]-32)*8;
txt4=(int16)(texto[4]-32)*8;
txt5=(int16)(texto[5]-32)*8;
txt6=(int16)(texto[6]-32)*8;
txt7=(int16)(texto[7]-32)*8;
txt8=(int16)(texto[8]-32)*8;
txt9=(int16)(texto[9]-32)*8;
txt10=(int16)(texto[10]-32)*8;
txt11=(int16)(texto[11]-32)*8;
txt12=(int16)(texto[12]-32)*8;
txt13=(int16)(texto[13]-32)*8;
txt14=(int16)(texto[14]-32)*8;
}
//--------------------------------------------------------------------
*/
//---------------------------------------------------------------
void MAX_SendString()
{
txt0=(int16)(texto[0]-32)*8;
txt1=(int16)(texto[1]-32)*8;
txt2=(int16)(texto[2]-32)*8;
txt3=(int16)(texto[3]-32)*8;
txt4=(int16)(texto[4]-32)*8;
txt5=(int16)(texto[5]-32)*8;
txt6=(int16)(texto[6]-32)*8;
txt7=(int16)(texto[7]-32)*8;
txt8=(int16)(texto[8]-32)*8;
txt9=(int16)(texto[9]-32)*8;
txt10=(int16)(texto[10]-32)*8;
txt11=(int16)(texto[11]-32)*8;
txt12=(int16)(texto[12]-32)*8;
txt13=(int16)(texto[13]-32)*8;
txt14=(int16)(texto[14]-32)*8;
}
//--------------------------------------------------------------------
void escreve_texto(void)
{
unsigned int16 lop2;
for(lop2=0;lop2 < 8;lop2++)
{
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
spi_xfer(max7912,REG_NO_OP);
sendData((8-lop2) << 8|font8x8_basic[(txt14+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt13+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt12+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt11+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt10+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt9+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt8+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt7+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt6+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt5+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt4+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt3+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt2+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt1+lop2)]);
sendData((8-lop2) << 8|font8x8_basic[(txt0+lop2)]);
}
}
//----------------------------------------------------------------------------
void max7219_init(unsigned int8 intensivity,unsigned int8 Modulos)
{
int16 lp;
for(lp=0;lp<Modulos-1;lp++){spi_xfer(max7912,REG_NO_OP);} //SEMPRE QUANTIDADE DE MÓDULOS - 1
for(lp=0;lp<Modulos;lp++)
{
if (intensivity > 0x0F)
return;
sendData(REG_DECODE_MODE | 0x00);
sendData(REG_INTENSITY | intensivity);
sendData(REG_SCAN_LIMIT | 0x07);
sendData(REG_DISPLAY_TEST | 0x00);
sendData(REG_SHUTDOWN | 0x01);
}
max7219_clean(Modulos);
}
//-------------------------------------------------------------
void main()
{
set_tris_a(0b00000000);
set_tris_b(0b00000010);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(int_rda);
enable_interrupts(GLOBAL);
output_high(CS);
max7219_init(0,15) ;
posi_rs232 = 0;
completo = 0;
texto[0] = '.';
texto[1] = '.';
texto[2] = 'M';
texto[3] = 'a';
texto[4] = 't';
texto[5] = 'r';
texto[6] = 'i';
texto[7] = 'x';
texto[8] = ' ';
texto[9] = 'L';
texto[10] = 'e';
texto[11] = 'd';
texto[12] = 's';
texto[13] = '.';
texto[14] = '.';
MAX_SendString();
escreve_texto();
// TESTE init//
/*
MAX_SendString("..Matrix Leds..");
escreve_texto();
*/
while(true)
{
delay_ms(100);
if(completo==1)
{
MAX_SendString();
escreve_texto();
completo = 0;
posi_rs232 = 0;
}
}
}
//......... |
Font8x8_original.h:
Code: | unsigned char const font8x8_basic[] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // U+0020 (space) 0 (32 decimal ascii)
0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00, // U+0021 (!) 8
0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // U+0022 (") 24
0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36, 0x00, // U+0023 (#) 32
0x0C, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x0C, 0x00, // U+0024 ($) 40
0x00, 0x63, 0x33, 0x18, 0x0C, 0x66, 0x63, 0x00, // U+0025 (%) 48
0x1C, 0x36, 0x1C, 0x6E, 0x3B, 0x33, 0x6E, 0x00, // U+0026 (&) 56
0x06, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // U+0027 (') 64
0x18, 0x0C, 0x06, 0x06, 0x06, 0x0C, 0x18, 0x00, // U+0028 (() 72
0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06, 0x00, // U+0029 ()) 80
0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, // U+002A (*) 88
0x00, 0x0C, 0x0C, 0x3F, 0x0C, 0x0C, 0x00, 0x00, // U+002B (+) 96
0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x06, // U+002C (,) 104
0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, // U+002D (-) 112
0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, // U+002E (.) 120
0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, // U+002F (/) 128
0x3E, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x3E, 0x00, // U+0030 (0) 136
0x0C, 0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x3F, 0x00, // U+0031 (1) 144
0x1E, 0x33, 0x30, 0x1C, 0x06, 0x33, 0x3F, 0x00, // U+0032 (2) 152
0x1E, 0x33, 0x30, 0x1C, 0x30, 0x33, 0x1E, 0x00, // U+0033 (3) 160
0x38, 0x3C, 0x36, 0x33, 0x7F, 0x30, 0x78, 0x00, // U+0034 (4) 168
0x3F, 0x03, 0x1F, 0x30, 0x30, 0x33, 0x1E, 0x00, // U+0035 (5) 176
0x1C, 0x06, 0x03, 0x1F, 0x33, 0x33, 0x1E, 0x00, // U+0036 (6) 184
0x3F, 0x33, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x00, // U+0037 (7) 192
0x1E, 0x33, 0x33, 0x1E, 0x33, 0x33, 0x1E, 0x00, // U+0038 (8) 200
0x1E, 0x33, 0x33, 0x3E, 0x30, 0x18, 0x0E, 0x00, // U+0039 (9) 208
0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x00, // U+003A (:) 216
0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C, 0x06, // U+003B (;) 224
0x18, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x18, 0x00, // U+003C (<) 232
0x00, 0x00, 0x3F, 0x00, 0x00, 0x3F, 0x00, 0x00, // U+003D (=) 240
0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00, // U+003E (>) 248
0x1E, 0x33, 0x30, 0x18, 0x0C, 0x00, 0x0C, 0x00, // U+003F (?) 256
0x3E, 0x63, 0x7B, 0x7B, 0x7B, 0x03, 0x1E, 0x00, // U+0040 (@) 264
0x0C, 0x1E, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x00, // U+0041 (A) 272
0x3F, 0x66, 0x66, 0x3E, 0x66, 0x66, 0x3F, 0x00, // U+0042 (B) 280
0x3C, 0x66, 0x03, 0x03, 0x03, 0x66, 0x3C, 0x00, // U+0043 (C) 288
0x1F, 0x36, 0x66, 0x66, 0x66, 0x36, 0x1F, 0x00, // U+0044 (D) 296
0x7F, 0x46, 0x16, 0x1E, 0x16, 0x46, 0x7F, 0x00, // U+0045 (E) 304
0x7F, 0x46, 0x16, 0x1E, 0x16, 0x06, 0x0F, 0x00, // U+0046 (F) 312
0x3C, 0x66, 0x03, 0x03, 0x73, 0x66, 0x7C, 0x00, // U+0047 (G) 320
0x33, 0x33, 0x33, 0x3F, 0x33, 0x33, 0x33, 0x00, // U+0048 (H) 328
0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, // U+0049 (I) 336
0x78, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, 0x00, // U+004A (J) 344
0x67, 0x66, 0x36, 0x1E, 0x36, 0x66, 0x67, 0x00, // U+004B (K) 352
0x0F, 0x06, 0x06, 0x06, 0x46, 0x66, 0x7F, 0x00, // U+004C (L) 360
0x63, 0x77, 0x7F, 0x7F, 0x6B, 0x63, 0x63, 0x00, // U+004D (M) 368
0x63, 0x67, 0x6F, 0x7B, 0x73, 0x63, 0x63, 0x00, // U+004E (N) 376
0x1C, 0x36, 0x63, 0x63, 0x63, 0x36, 0x1C, 0x00, // U+004F (O) 384
0x3F, 0x66, 0x66, 0x3E, 0x06, 0x06, 0x0F, 0x00, // U+0050 (P) 392
0x1E, 0x33, 0x33, 0x33, 0x3B, 0x1E, 0x38, 0x00, // U+0051 (Q) 400
0x3F, 0x66, 0x66, 0x3E, 0x36, 0x66, 0x67, 0x00, // U+0052 (R) 408
0x1E, 0x33, 0x07, 0x0E, 0x38, 0x33, 0x1E, 0x00, // U+0053 (S) 416
0x3F, 0x2D, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, // U+0054 (T) 424
0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x00, // U+0055 (U) 432
0x33, 0x33, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00, // U+0056 (V) 440
0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00, // U+0057 (W) 448
0x63, 0x63, 0x36, 0x1C, 0x1C, 0x36, 0x63, 0x00, // U+0058 (X) 456
0x33, 0x33, 0x33, 0x1E, 0x0C, 0x0C, 0x1E, 0x00, // U+0059 (Y) 464
0x7F, 0x63, 0x31, 0x18, 0x4C, 0x66, 0x7F, 0x00, // U+005A (Z) 472
0x1E, 0x06, 0x06, 0x06, 0x06, 0x06, 0x1E, 0x00, // U+005B ([) 480
0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00, // U+005C (\) 488
0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00, // U+005D (]) 496
0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00, 0x00, // U+005E (^) 504
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, // U+005F (_) 512
0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // U+0060 (`) 520
0x00, 0x00, 0x1E, 0x30, 0x3E, 0x33, 0x6E, 0x00, // U+0061 (a) 528
0x07, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3B, 0x00, // U+0062 (b) 536
0x00, 0x00, 0x1E, 0x33, 0x03, 0x33, 0x1E, 0x00, // U+0063 (c) 544
0x38, 0x30, 0x30, 0x3e, 0x33, 0x33, 0x6E, 0x00, // U+0064 (d) 552
0x00, 0x00, 0x1E, 0x33, 0x3f, 0x03, 0x1E, 0x00, // U+0065 (e) 560
0x1C, 0x36, 0x06, 0x0f, 0x06, 0x06, 0x0F, 0x00, // U+0066 (f) 568
0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x1F, // U+0067 (g) 576
0x07, 0x06, 0x36, 0x6E, 0x66, 0x66, 0x67, 0x00, // U+0068 (h) 584
0x0C, 0x00, 0x0E, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, // U+0069 (i) 592
0x30, 0x00, 0x30, 0x30, 0x30, 0x33, 0x33, 0x1E, // U+006A (j) 600
0x07, 0x06, 0x66, 0x36, 0x1E, 0x36, 0x67, 0x00, // U+006B (k) 608
0x0E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1E, 0x00, // U+006C (l) 616
0x00, 0x00, 0x33, 0x7F, 0x7F, 0x6B, 0x63, 0x00, // U+006D (m) 624
0x00, 0x00, 0x1F, 0x33, 0x33, 0x33, 0x33, 0x00, // U+006E (n) 632
0x00, 0x00, 0x1E, 0x33, 0x33, 0x33, 0x1E, 0x00, // U+006F (o) 640
0x00, 0x00, 0x3B, 0x66, 0x66, 0x3E, 0x06, 0x0F, // U+0070 (p) 648
0x00, 0x00, 0x6E, 0x33, 0x33, 0x3E, 0x30, 0x78, // U+0071 (q) 656
0x00, 0x00, 0x3B, 0x6E, 0x66, 0x06, 0x0F, 0x00, // U+0072 (r) 664
0x00, 0x00, 0x3E, 0x03, 0x1E, 0x30, 0x1F, 0x00, // U+0073 (s) 672
0x08, 0x0C, 0x3E, 0x0C, 0x0C, 0x2C, 0x18, 0x00, // U+0074 (t) 680
0x00, 0x00, 0x33, 0x33, 0x33, 0x33, 0x6E, 0x00, // U+0075 (u) 688
0x00, 0x00, 0x33, 0x33, 0x33, 0x1E, 0x0C, 0x00, // U+0076 (v) 696
0x00, 0x00, 0x63, 0x6B, 0x7F, 0x7F, 0x36, 0x00, // U+0077 (w) 704
0x00, 0x00, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x00, // U+0078 (x) 712
0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0x1F, // U+0079 (y) 720
0x00, 0x00, 0x3F, 0x19, 0x0C, 0x26, 0x3F, 0x00, // U+007A (z) 728
0x38, 0x0C, 0x0C, 0x07, 0x0C, 0x0C, 0x38, 0x00, // U+007B ({) 736
0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, // U+007C (|) 744
0x07, 0x0C, 0x0C, 0x38, 0x0C, 0x0C, 0x07, 0x00, // U+007D (}) 752
0x6E, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // U+007E (~) 760
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // U+007F 768
};
/**
* 8x8 monochrome bitmap fonts for rendering
* Author: Daniel Hepper <daniel@hepper.net>
*
* License: Public Domain
*
* Based on:
* // Summary: font8x8.h
* // 8x8 monochrome bitmap fonts for rendering
* //
* // Author:
* // Marcel Sondaar
* // International Business Machines (public domain VGA fonts)
* //
* // License:
* // Public Domain
*
* Fetched from: http://dimensionalrift.homelinux.net/combuster/mos3/?p=viewsource&file=/modules/gfx/font8_8.asm
**/
// Constant: font8x8_basic
// Contains an 8x8 font map for unicode points U+0000 - U+007F (basic latin) |
I couldn't do the simulation in Proteus, the letters are not displayed as they should.
To test the hardware
modules start from left to right. |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Mon Jul 12, 2021 4:48 pm |
|
|
vtrx wrote: |
void sendData(unsigned int16 data)
{
spi_xfer(max7912,data);
output_low(CS);
output_high(CS);
}
|
Does this work ? |
|
|
vtrx
Joined: 11 Oct 2017 Posts: 141
|
|
Posted: Mon Jul 12, 2021 4:55 pm |
|
|
This code is fully functional.
In fact only the MAX7221 would need to use:
Code: |
output_low(CS);
spi_xfer(max7912,data);
output_high(CS); |
|
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Mon Jul 12, 2021 5:22 pm |
|
|
The data sheet shows it being used in the typical gated mode.
If it works with that routine, it means only the latching function
of the rising edge of \CS is used. |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9124 Location: Greensville,Ontario
|
|
Posted: Mon Jul 12, 2021 5:31 pm |
|
|
just a comment.
I think the '7912' numbers in your program are really supposed to be '7219' .
A '7912' to me is a -12V voltage regulator(yeah, I'm that old....)
the 7219 is a MAXIM part, 8by8 LED chip.
also
You need to add 'errors' to the USE RS232(...options....) otherwise the HW UART will 'lockup/freeze' due to overrun conditions when more than 2-3 characters are sent to it and the program hasn't read them.
Jay |
|
|
vtrx
Joined: 11 Oct 2017 Posts: 141
|
|
Posted: Mon Jul 12, 2021 7:36 pm |
|
|
temtronic wrote: | just a comment.
I think the '7912' numbers in your program are really supposed to be '7219' .
A '7912' to me is a -12V voltage regulator(yeah, I'm that old....)
the 7219 is a MAXIM part, 8by8 LED chip.
also
You need to add 'errors' to the USE RS232(...options....) otherwise the HW UART will 'lockup/freeze' due to overrun conditions when more than 2-3 characters are sent to it and the program hasn't read them.
Jay |
You are right!
I think I thought a lot about the code and that's why I got confused.
Type 7912 on Google and it will show 7219...
I'm not alone!
http://jdimeglio.blogspot.com/2014/05/max7912-and-pic18f.html |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19244
|
|
Posted: Tue Jul 13, 2021 1:18 am |
|
|
As shown, 2 modules, not '15'.
Understand each chip here drives up to 8 digits. 15 chips (modules), would
drive up to 120 digits.
You seem to be referring to the 'digits', as 'modules'.
With only two chips, the amount of data involved, drops by nearly 8*.
Very much easier to handle, and fitting comfortably in the smaller PIC. |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9124 Location: Greensville,Ontario
|
|
Posted: Tue Jul 13, 2021 7:43 am |
|
|
whew.... it could be due to English not being the easiest lanuguage to understand. Heck, I'm almost a 70 year old Canadian, and I STILL have problems with it..... Sometimes several words can mean the same thing,
yes, 2 MAX7219 chips control 16 , seven segment displays.
well really 8 segments, the decicmal point should be considered a 'segment'. |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|