Pozdrav svima!
Imam jedan problem. Naime treba da napravim program koji ce simulirati bacanje kocke (1,2,3,4,5,6). Koristim CCS Compiler za Microchip-ove PIC-ove i PICC Simulator (radi se o PIC 16f877 mikrokontroleru). Preko tastera koji je povezan na pinu RB7 treba da okinem program i da mi on na portu B (pinovi od 0 do 6) mikrokontrolera setuje odredjene pinove na "1".
Problem je u sledecem kodu koji sam napravio, preveo i kompajlirao, a koji kada simuliram ne radi posao koji treba da radi.
Jel moze neko da mi pomogne da prepravim ovaj kod?
#include <16F877.h>
#fuses HS,NOWDT,PROTECT,NOLVP,PUT
#use delay (clock=20000000)
#include <stdlib.h>
#byte port_b=0x06
byte const SEG_MAP[6] = {0x08,0x22,0x2A,0x55,0x9D,0x77};
unsigned int i, n;
int x;
void display_digits() {
port_b=SEG_MAP[x];
delay_us(1);
}
void main() {
set_tris_b(0x80);
port_b=0;
i=0;
Loop:
while(input(PIN_B7))
{
i=i+1;
if (i==255)
i=0;
}
srand(i);
n=rand();
switch (n)
{
case '1':
{
x=1;
if ((n>0) & (n<42))
display_digits();
break;
}
case '2':
{
x=2;
if ((n>42) & (n<84))
display_digits();
break;
}
case '3':
{
x=3;
if ((n>84) & (n<126))
display_digits();
break;
}
case '4':
{
x=4;
if ((n>126) & (n<168))
display_digits();
break;
}
case '5':
{
x=5;
if ((n>168) & (n<210))
display_digits();
break;
}
case '6':
{
x=6;
if ((n>210) & (n<255))
display_digits();
break;
}
};
while(!input(PIN_B7))
delay_us(1);
goto Loop;
}
Imam jedan problem. Naime treba da napravim program koji ce simulirati bacanje kocke (1,2,3,4,5,6). Koristim CCS Compiler za Microchip-ove PIC-ove i PICC Simulator (radi se o PIC 16f877 mikrokontroleru). Preko tastera koji je povezan na pinu RB7 treba da okinem program i da mi on na portu B (pinovi od 0 do 6) mikrokontrolera setuje odredjene pinove na "1".
Problem je u sledecem kodu koji sam napravio, preveo i kompajlirao, a koji kada simuliram ne radi posao koji treba da radi.
Jel moze neko da mi pomogne da prepravim ovaj kod?
#include <16F877.h>
#fuses HS,NOWDT,PROTECT,NOLVP,PUT
#use delay (clock=20000000)
#include <stdlib.h>
#byte port_b=0x06
byte const SEG_MAP[6] = {0x08,0x22,0x2A,0x55,0x9D,0x77};
unsigned int i, n;
int x;
void display_digits() {
port_b=SEG_MAP[x];
delay_us(1);
}
void main() {
set_tris_b(0x80);
port_b=0;
i=0;
Loop:
while(input(PIN_B7))
{
i=i+1;
if (i==255)
i=0;
}
srand(i);
n=rand();
switch (n)
{
case '1':
{
x=1;
if ((n>0) & (n<42))
display_digits();
break;
}
case '2':
{
x=2;
if ((n>42) & (n<84))
display_digits();
break;
}
case '3':
{
x=3;
if ((n>84) & (n<126))
display_digits();
break;
}
case '4':
{
x=4;
if ((n>126) & (n<168))
display_digits();
break;
}
case '5':
{
x=5;
if ((n>168) & (n<210))
display_digits();
break;
}
case '6':
{
x=6;
if ((n>210) & (n<255))
display_digits();
break;
}
};
while(!input(PIN_B7))
delay_us(1);
goto Loop;
}
