Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
void dispStr(char *string){
char tmp;
char buff, buff2, buff3, buff4;
char buffa, buffb, buffc, buffd;
while(tmp != 0x60){
buff = *string++;
buff2 = *string++;
buff3 = *string++;
buff4 = *string++;
snft_write(Digit0,buff);
Delay10KTCYx(200);
///////////////////////////////
snft_write(Digit1,buff);
snft_write(Digit0,buff2);
Delay10KTCYx(200);
////////////////////////////////
snft_write(Digit2,buff);
snft_write(Digit1,buff2);
snft_write(Digit0,buff3);
Delay10KTCYx(200);
////////////////////////////////
snft_write(Digit3,buff);
snft_write(Digit2,buff2);
snft_write(Digit1,buff3);
snft_write(Digit0,buff4);
Delay10KTCYx(200);
////////////////////////////////
}
char msg[] = {"ATOMSOFT Jason Lopez `"};
delay_500ms();
dispStr(msg);
while(1){
snft_write(Digit0,*string);
Delay10KTCYx(dtime);
if(*string == 0x60) break;
snft_write(Digit1,*string++);
if(*string == 0x60) break;
snft_write(Digit0,*string--);
Delay10KTCYx(dtime);
snft_write(Digit2,*string++);
snft_write(Digit1,*string++);
if(*string == 0x60) break;
snft_write(Digit0,*string--);
string--;
Delay10KTCYx(dtime);
snft_write(Digit3,*string++);
snft_write(Digit2,*string++);
snft_write(Digit1,*string++);
if(*string == 0x60) break;
snft_write(Digit0,*string++);
Delay10KTCYx(dtime);
/////////////// reverse
if(*string == 0x60) break;
snft_write(Digit0,*string--);
snft_write(Digit1,*string--);
snft_write(Digit2,*string--);
snft_write(Digit3,*string);
string += 3;
Delay10KTCYx(dtime);
if(*string == 0x60) break;
snft_write(Digit0,*string--);
snft_write(Digit1,*string--);
snft_write(Digit2,*string--);
snft_write(Digit3,*string);
string += 4;
Delay10KTCYx(dtime);
if(*string == 0x60) break;
snft_write(Digit0,*string--);
snft_write(Digit1,*string--);
snft_write(Digit2,*string--);
snft_write(Digit3,*string);
string += 5;
Delay10KTCYx(dtime);
if(*string == 0x60) break;
snft_write(Digit0,*string--);
snft_write(Digit1,*string--);
snft_write(Digit2,*string--);
snft_write(Digit3,*string);
string += 6;
Delay10KTCYx(dtime);
}
sub scrollText ( text as string )
mytext = " " & text & " " ' pad the string
for x=1 to len(mytext)-4
stringout digit0, mytext[x]
stringout digit1, mytext[x+1]
stringout digit2, mytext[x+2]
stringout digit3, mytext[x+3]
delay200ms
next x
end sub
void dispStr(char *string){
char x;
char tmp[50];
strcpy(tmp,string);
for(x=0;x<40;x++){
if(tmp[x] == 0x60) break;
snft_write(Digit3, tmp[x]);
if(tmp[x+1] == 0x60) break;
snft_write(Digit2, tmp[x+1]);
if(tmp[x+2] == 0x60) break;
snft_write(Digit1, tmp[x+2]);
if(tmp[x+3] == 0x60) break;
snft_write(Digit0, tmp[x+3]);
delay_500ms();
}
}
#include <p18f2455.h>
#include <stdio.h>
#include <delays.h>
#include <string.h>
#pragma config WDT = OFF, LVP = OFF, FOSC = HS
#define SDA_PORT PORTCbits.RC7
#define SDA LATCbits.LATC7
#define SDA_TRIS TRISCbits.TRISC7
#define SCL LATBbits.LATB1
#define Digit0 0x63
#define Digit1 0x62
#define Digit2 0x61
#define Digit3 0x60
void main(void);
void i2c_byte(char addr);
void i2c_start(void);
void i2c_ack(void);
char i2c_input(void);
void i2c_clock(void);
void i2c_stop(void);
char snft_write(char offset, char data);
char snft_read(char offset);
void delay1x_ms(char ms);
void delay10x_ms(char ms);
void dispStr(char *string);
char MAX6953R = 0b10100001; //1 = READ
char MAX6953W = 0b10100000; //0 = WRITE
void main (void){
char msg[] = {" Jason Lopez AtomSoftTech.com `"};
TRISB = 0;
LATB = 0b00000100;
snft_write(0x07,0x00); //TEST OFF
snft_write(0x04,0b00000101);
snft_write(0x20,0x20);
snft_write(0x21,0x20);
while(1){
delay10x_ms(50);
dispStr(msg);
}
}
void dispStr(char *string){
char x;
char tmp[50];
strcpy(tmp,string);
for(x=0;x<40;x++){
if(tmp[x] == 0x60) break;
snft_write(Digit3, tmp[x]);
if(tmp[x+1] == 0x60) break;
snft_write(Digit2, tmp[x+1]);
if(tmp[x+2] == 0x60) break;
snft_write(Digit1, tmp[x+2]);
if(tmp[x+3] == 0x60) break;
snft_write(Digit0, tmp[x+3]);
delay10x_ms(60);
}
}
void delay10x_ms(char ms){
char i;
for(i=0;i<ms;i++){
Delay10KTCYx(5);
}
}
void delay1x_ms(char ms){
char i;
for(i=0;i<ms;i++){
Delay1KTCYx(5);
}
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//// I2C FUNCTIONS
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
void i2c_clock(void)
{
SCL = 1;
Delay10TCY();
SCL = 0;
}
void i2c_start(void){
SDA_TRIS=0; //SDA Output
SCL=0; //Clock Low
//Start - 5us
SDA=1; //SDA High
SCL=1; //Clock high
Delay10TCY();
SDA=0; //SDA Low
Delay10TCY();
SCL=0; //Clock Low
}
void i2c_byte(char addr){
char bl;
for(bl=0;bl<8;bl++){
if((addr & 0x80) != 0)
SDA = 1;
else
SDA = 0;
i2c_clock();
addr=addr<<1;
}
}
void i2c_ack(void){
SDA_TRIS = 1; //SDA Input
i2c_clock();
Delay10TCY();
//while(SDA);
SDA_TRIS = 0;
}
char i2c_input(void){
char temp;
char i;
SDA_TRIS = 1;
temp=0;
i = 0;
for(i=0;i<8;i++){
temp=temp<<1;
if(SDA_PORT)
temp|=1;
i2c_clock();
}
SDA_TRIS = 0;
return temp;
}
void i2c_stop(void){
SDA = 0;
SCL = 1;
Delay10TCY();
SDA = 1;
SCL = 0;
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//// MAX6953 FUNCTIONS
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
char snft_write(char offset, char data){ //snft = MAX (6953)
char temp;
i2c_start(); //Start
i2c_byte(MAX6953W); //Slave Byte
i2c_ack(); //ACK
i2c_byte(offset); //Address Offset
i2c_ack(); //ACK
i2c_byte(data); //Slave Byte
i2c_ack(); //ACK
i2c_stop; //Stop
return temp;
}
char snft_read(char offset){
char temp;
i2c_start(); //Start
i2c_byte(MAX6953W); //Slave Byte
i2c_ack(); //ACK
i2c_byte(offset); //Address Offset
i2c_ack(); //ACK
i2c_start(); //Start
i2c_byte(MAX6953R); //Slave Byte
i2c_ack(); //ACK
temp = i2c_input(); //Get Data
i2c_ack(); //ACK
i2c_stop; //Stop
return temp;
}