All pastes #2054090 Raw Edit

Miscellany

public text v1 · immutable
#2054090 ·published 2011-05-05 05:35 UTC
rendered paste body
#include <stdio.h>
#include <stdlib.h>
#include <reg552.h>


//sfr P1 = 0x90;
bdata unsigned int registr;	 //16bitu pac typ int
bdata unsigned char pomoc;	 //pomocna promenna
//bdata unsigned int pomoc;
data unsigned char gr,y,i,s;
xdata unsigned char hist[256];
data bit D;
sbit Q16 = pomoc^7;		   // vyznamejsi bity dole (big indian)
sbit Q14 = pomoc^5;
sbit Q13 = pomoc^4;
sbit Q11 = pomoc^2;

//inicializace
void init(){
   	registr = 0x8888; 
	y = 0; 
	P1 = 0x00; 
	s = 0;
   	for(i = 0; i < 255; i++) {
       hist[i]=0;
	};
	hist[255]=0;
}

// generator
unsigned char genr() {
	pomoc = registr>>8;
	registr += registr; 
	if ((Q16^Q14^Q13^Q11)==1) 
	registr|=0x01;
	gr = registr;
	return(gr);
}

// filtr
unsigned char filtr(unsigned char x){
//	gr = 0.25*x + 0.75*y;
	gr = (x>>2) + (y>>1)+(y>>2);
	y = gr;
	return(gr);
}

// mereni cetnosti
void cetnost(){
	hist[gr]++;
	if(hist[gr] == 255) {
		s = 1;
	}
}

// vykresleni
void paint(){
	P1 = 0xFF;
	P1 = 0x00;
	P1 = 0xFF;
	P1 = 0x00;
	for(i = 0; i < 255; i++)
	{ 
		P1 = hist[i];
	}
	P1 = hist[i];
}

void main()
{	init();
while(1) {
	gr = genr();
	gr = filtr(gr);
	P1 = gr;
	cetnost();
	if(s == 1){ 
		while(1){
			paint();
		}
	}
}
	
}