📄 reclama_fct3._c
字号:
#include <string.h>
#include <iom8v.h>
#include <EEPROM.h>
#include "reclama_fct3.h"
#include "delay_fct3.h"
#define zero 0x00
#define unu 0x01
#define doi 0x02
#define trei 0x03
/* ********************** */
void send_octetA(struct octet oct){
uc_8 i;
for(i=0;i<8;i++) send_bitA(oct.a[i]);
}
/* ********************** */
void send_octetB(struct octet oct){
uc_8 i;
for(i=0;i<8;i++) send_bitB(oct.a[i]);
}
/* ********************** */
void send_octetAB(struct octet oct){
uc_8 a,b,c,d,e,f,g,h,i;
a=oct.a[0];b=oct.a[1];c=oct.a[2];d=oct.a[3];
e=oct.a[4];f=oct.a[5];g=oct.a[6];h=oct.a[7];
send_bitAB(a,a);
send_bitAB(c,g);
send_bitAB(d,g);
send_bitAB(d,f);
send_bitAB(f,e);
send_bitAB(c,h);
send_bitAB(b,h);
send_bitAB(b,e);
send_bitAB(a,a);
send_bitAB(c,g);
send_bitAB(d,g);
send_bitAB(d,f);
send_bitAB(f,e);
send_bitAB(c,h);
send_bitAB(b,h);
send_bitAB(b,e);
}
/* ********************** */
void send_bitA(uc_8 b){
switch(b){
case 0: PORTB|=(0<<PORTB0);clock();PORTB&=~(0<<PORTB0);break;//clock(); break;
case 1: PORTB|=(1<<PORTB0);clock();PORTB&=~(1<<PORTB0);break;
}
}
/* ********************** */
void send_bitB(uc_8 b){
switch(b){
case 0: PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);break;//clock(); break;
case 1: PORTB|=(1<<PORTB1);clock();PORTB&=~(1<<PORTB1);break;
}
}
/* ********************** */
void send_bitAB(uc_8 a,uc_8 b){
if(a==0&b==0) {PORTB|=zero;clock();PORTB&=~zero;}
if(a==0&b==1) {PORTB|=unu;clock();PORTB&=~unu;}
if(a==1&b==0) {PORTB|=doi;clock();PORTB&=~doi;}
if(a==1&b==1) {PORTB|=trei;clock();PORTB&=~trei;}
}
/* ********************** */
void afisheaza_A(uc_8 img){
uc_8 j;
linie_goala(10);
for(j=0;j<5;j++) send_octetA(zecimal_binar(fig_dec(img).c[j]));
linie_goala(10);
}
/* ********************** */
void afisheaza_B(uc_8 img){
uc_8 j;
linie_goala(10);
for(j=0;j<5;j++) send_octetB(zecimal_binar(fig_dec(img).c[j]));
linie_goala(10);
}
/* ********************** */
void afisheaza_AB(uc_8 img){
uc_8 j;
linie_goala_AB(5);
for(j=0;j<5;j++) send_octetAB(zecimal_binar(fig_dec(img).c[j]));
linie_goala_AB(5);
}
/* ********************** */
void linie_goala(uc_8 n) {
uc_8 i,j;
for(i=0;i<n;i++) { for(j=0;j<8;j++){PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
}
}
/* ********************** */
void linie_goala_AB(uc_8 n) {
uc_8 i,j;
for(i=0;i<n;i++){for(j=0;j<16;j++) { PORTB|=(0<<PORTB1);clock();PORTB&=~(0<<PORTB1);}
}
}
/* ********************** */
struct octet zecimal_binar (uc_8 numar){ //in loc de uc_8 era unsigned int
uc_8 k;
struct octet rasp;
for(k=0;k<8;k++){rasp.a[7-k]=numar%2;
numar=numar/2;
}
return rasp;
}
/* ********************** */
void init_uc(void){
PORTD = 0x00; //MMC card
DDRD = 0xFF;
PORTB = 0x00;//data1+data2+ON/OFF+CLK
DDRB = 0xFF;
}
/* ********************** */
void clear(int n) {
uc_8 i;
for(i=0;i<n;i++) clock();
}
/* ********************** */
void display (int onoff){
PORTB|=(1<<PORTB3);
delay8_us(onoff);
PORTB&=~(1<<PORTB3);
delay8_us(500); ///DE MODIFICAT PT INTENSITATEA LUMINII...SI IN COD LA SEND_OCTET...DISPLAY
}
/* ********************** */
void clip (uc_8 c){
uc_8 i;
for(i=0;i<c;i++) display(100);
}
/* ********************** */
void afisheaza_poza(struct poza pic){
uc_8 i;
for(i=0;i<25;i++) send_octet_AB(zecimal_binar(pic.A[i]),zecimal_binar(pic.B[i]));
clip(100);
}
/* ********************** */
void send_octet_AB(struct octet A, struct octet B){
uc_8 i;
for(i=0;i<8;i++) send_bitAB(A.a[i],B.a[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -