/* Bilaga B HC11program */ #include "IO-reg.h" #include "intr6811.h" #include "stdlib.h" int paradata, i; unsigned char controll; int randarr[9]; void inich(void) { controll = 0; PIOC = PIOC|0x12; //Sätter handskakning till simple strobe mode samt trig flank OPTION = OPTION|0x10; //Sätter Oscillator delay SCCR1 = 0; //Sätter 8 data bitar och wakeup by IDLE BAUD= 0x30; //Sätter 9600 Baud SCCR2 = 0x0C; //Sätter sänding och mottagning av serielldata randarr[0]=0x37; //Initiering av slumpvektor randarr[1]=0x2e; randarr[2]=0x36; randarr[3]=0x3e; randarr[4]=0x34; randarr[5]=0x3c; randarr[6]=0x2d; randarr[7]=0x35; randarr[8]=0x3d; } void sender(void) { controll = PORTCL; switch (controll & 0x3f) { case 0x27:stop_CPU(); //Stannar om det är avstängnings signalen break; case 0x25:i=rand()%9; SCDR=randarr[i]; //Slump av kommando break; default: SCDR= controll & 0x3f; //Skriver data att skickas till det seriella registret 111001 } while ((SCSR&0x40) == 0){ } } main (void) { inich(); while (1!=0) //Evig loop { if ((PIOC&0x80)!= 0) //Kontrollerar om ny signal har kommit { sender(); PIOC = PIOC^0x82; //EGA = ~EGA; //Sätter aktiv flank till motsatt flank } } }