RTV forum PL | NewsGroups PL

Jak rozwiązać problem z najszybszym stoperem w ADuc831 i kodem w Keilu?

keil, ADuc831 i odmierzanie czasu

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak rozwiązać problem z najszybszym stoperem w ADuc831 i kodem w Keilu?

Dominik
Guest

Fri Nov 19, 2004 8:38 pm   



Mam problem z najszybszym stoperem na swiecie. Mimo wielu prob nie udalo mi
sie go zwolnic. Moze ktos doswiadczony wiedzialby co robie zle. Oto
fragmenty kodu:
void obs_T0(void) interrupt 1
{
a++;
TL0=0xff;
TH0=0x4b;
if (a>20)
{
a=0;
SekundyJedn++;
itd..}
}

void wyswietl(unsigned char pozycja, unsigned char cyfra)
{
pozycja=pozycja<<4;
pozycja=pozycja|cyfra;
P0=pozycja;
}
void main(void)
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=0x4b;
TL0=0xff;
TR0=1;
while (1)
{...
}
Ja juz kompletnie nie wiem co moze byc zle. Czasami Keil wyswietla taki
komunikat:
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_WYSWIETL?STOPER
Za pomoc bede bardzo wdzieczny. Pozdrawiam

Dominik

Sebastian Bialy
Guest

Fri Nov 19, 2004 8:40 pm   



Dominik wrote:
Quote:
void obs_T0(void) interrupt 1
{
a++;
if (a>20)

Nie znam się na keilu, ale czy zdefiniowałeś zmienną "a" jako "volatile" ?

--
Sebastian Bialy - heby@poczta.onet.pl

Dominik
Guest

Fri Nov 19, 2004 8:50 pm   



Quote:

Nie znam się na keilu, ale czy zdefiniowałeś zmienną "a" jako "volatile"
?

Niestety niczego to nie zmienia, nadal smiga jak szalony. Pozdrawiam


Dominik

A.Grodecki
Guest

Fri Nov 19, 2004 8:56 pm   



Użytkownik Dominik napisał:

Quote:
Mam problem z najszybszym stoperem na swiecie. Mimo wielu prob nie udalo mi
sie go zwolnic. Moze ktos doswiadczony wiedzialby co robie zle. Oto
fragmenty kodu:
void obs_T0(void) interrupt 1
....


A używanie C ma PODOBNO życie upraszczać... Wink
Niestety, gdyby było w asm to bym Ci powiedział...

--

Pozdrawiam,

A. Grodecki

Johnny
Guest

Fri Nov 19, 2004 9:37 pm   



Użytkownik "Dominik" <dbebik@op.pl> napisał w wiadomości
news:cnllj8$msd$1@atlantis.news.tpi.pl...
Quote:
Mam problem z najszybszym stoperem na swiecie. Mimo wielu prob nie udalo
mi

Ja juz kompletnie nie wiem co moze byc zle. Czasami Keil wyswietla taki
komunikat:
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_WYSWIETL?STOPER
Za pomoc bede bardzo wdzieczny. Pozdrawiam

To jest ostrzezenie, ktore mowi, ze nigdzie w swoim programie nie wywolujesz
funkcji "wyswietl". I faktycznie w zamieszczonym listingu nie ma tego
wywolania.
pozdrawiam
JD

Dominik
Guest

Fri Nov 19, 2004 9:53 pm   



Quote:
To jest ostrzezenie, ktore mowi, ze nigdzie w swoim programie nie
wywolujesz
funkcji "wyswietl". I faktycznie w zamieszczonym listingu nie ma tego
wywolania.
pozdrawiam
JD

Fakt, w calym zamieszaniu mialem je przez chwile pominiete. Ale zauważylem
inna rzecz Jezeli w petli while(1) wpisze:
P0=SekundyJedn;
P1=SekundyDzies;
P2=MinutyJedn;
P3=MinutyDzies;
i nie wywoluje wyswietl() to czas odmierza mi prawidlowo. Jezeli dodam 1 lub
wiecej wywolan wyswietl(); to proporcjonalnie mi przyspiesza. Moze, po
prostu keil zle symuluje procesor? Wczesniej nie mialem takich problemow, a
niestety nie mam mozliwosci wgrania hexa do uC i sprawdzenia jak to by
dzialalo w rzeczywistosci.
Pozdrawiam
Dominik

Zbych
Guest

Sun Nov 21, 2004 10:51 pm   



Pewnego dnia A.Grodecki przemówił ludzkim głosem:

Quote:
A używanie C ma PODOBNO życie upraszczać... Wink

I upraszcza ! Tylko jak każdym narzędziem tak i c trzeba umieć się
posługiwać i kontrolować to co wypluwa z siebie kompilator.


--
*Warning*: Dates in Calendar are closer than they appear.

### /mail: bzb<at>poczta<dot>onet<dot>pl/ ###

Dominik
Guest

Thu Nov 25, 2004 10:37 pm   



Dla potomnych - to byla wina Keila, czyli nie zawsze warto sugerowac sie
symulatorami. W rzeczywistosci, na procku program chodzil ok.
Pozdrawiam
Dominik

elektroda NewsGroups Forum Index - Elektronika Polska - Jak rozwiązać problem z najszybszym stoperem w ADuc831 i kodem w Keilu?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map