keil, ADuc831 i odmierzanie czasu

Nov 19, 2004 7 Replies

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



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

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

Dominik

Użytkownik Dominik napisał:

...

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

U¿ytkownik "Dominik" snipped-for-privacy@op.pl napisa³ w wiadomo¶ci news:cnllj8$msd$ snipped-for-privacy@atlantis.news.tpi.pl...

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

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

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

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required