[elektro] Mikroelektronika PIC szimulátor mit szimulál ?

potyo potyo.ada at gmail.com
Fri May 27 09:58:20 CEST 2011


Ha az ebből generált hexet betöltöd az MPLAB-ba és ott szimulálod, ott
számol vagy sem? Meg én megnézném az asm listát is, mielőtt bármi máson
agyalok. Elvileg T0CON  = 0xC4; hatására már a TMR0 regisztereknek
számolniuk kellene.

2011. május 27. 9:52 Kovács Kenéz írta, <nonoproblem at citromail.hu>:

> Hali !
>
> PIC18F14K50, TMR0 vagy TMR1 vagy TMR3 bekapcsolása / elindítása nem megy !
> Sem a valóságban, sem a szimulátorban.
> Sebaj, megnézzük a gyári sample programot (PIC18F87J60-ra).
>
> Íme:
>
> unsigned cnt;
>
> void interrupt() {
>  if (TMR0IF_bit) {
>    cnt++;             // Increment value of cnt on every interrupt
>    TMR0L  = 96;
>    TMR0IF_bit = 0;    // clear TMR0IF
>  }
> }
>
> void main() {
>
>  ADCON1 |= 0x0F;      // Configure AN pins as digital
>  CMCON  |= 7;         // Disable comparators
>
>  cnt = 0;             // Initialize cnt
>  TRISB = 0;           // PORTB is output
>  PORTB = 0xFF;        // Initialize PORTB
>
>  T0CON  = 0xC4;       // Set TMR0 in 8bit mode, assign prescaler to TMR0
>  INTCON = 0xC0;       // Set GIE, PEIE
>  TMR0IE_bit = 1;      // Enable TMRO interrupt
>
>  do {
>    if (cnt >= 1250) {
>      PORTB = ~PORTB;  // Toggle PORTB LEDs
>      cnt = 0;         // Reset cnt
>    }
>  } while(1);          // endless loop
> }
>
> Csakhogy ez sem megy a szimulátor szerint !
> A timer bekapcsolása után a TMR0L és TMR0H regisztereknek növekedniük
> kellene.
> Ezzel szemben stabilan nullán állnak !
> Akkor mit szimulál a szimulátor ?
>
> Vagy elnéztem valamit ?
>
> safi
>
> -----------------------------------------
>          elektro[-flame|-etc]


More information about the Elektro mailing list