Simple timer event example

Hardware die niet past in bovenstaande onderwerpen
Berichten: 12
Geregistreerd: 22 Aug 2014, 09:46

Simple timer event example

Berichtdoor Guus2005 » 03 Sep 2014, 08:22

De mikromedia 5 for TIVA is erg kompleet vind ik zelf. Toegegeven, ik heb nog nooit een ander bordje in mijn handen gehad. Maar je kan zo gek niet bedenken of het zit erop.
Nu is het de kunst om e.e.a. aan de praat te krijgen.

Het scherm moet na 60 seconden inactiviteit gaan slapen. Daarmee bedoel ik dat het scherm zwart moet worden.
Als het weer wordt aangeraakt moet die weer oplichten.
Dat zwart worden en oplichten werkt. Nu moet ik een timer instellen dat die na 60 seconden dat commando geeft.
Het probleem is die 60 seconden.
In de helpfile vond ik dit voorbeeld voor een timer:
Code: Alles selecteren
void Timer0A_interrupt() iv IVT_INT_TIMER0A ics ICS_OFF {
  TIMER_ICR_TATOCINT_bit = 1;              // Clear time-out timer A interrupt
  GPIO_PORTJ_DATA = ~GPIO_PORTJ_DATA;      // Toggle GPIO_PORTJ led's
}

void main() {
  GPIO_Digital_Output(&GPIO_PORTJ, _GPIO_PINMASK_ALL);  // Enable digital output on GPIO_PORTJ
  GPIO_PORTJ_DATA = 0;
  SYSCTL_RCGC1_TIMER0_bit = 1;        // Enable clock gating for timer module 0
  EnableInterrupts();                 // Enables the processor interrupt.
  TIMER_CTL_TAEN_bit = 0;             // Disable timer
  TIMER0_CFG = 0;                     // Set 32-bit timer configuration
  TIMER0_TAMR |= 2;                   // Set periodic mode
  TIMER0_TAILR = Get_Fosc_kHz()*1000; // Set interval load
  NVIC_IntEnable(IVT_INT_TIMER0A);    // Enable timer interrupt
  TIMER_IMR_TATOIM_bit = 1;           // Enable time-out timer A interrupt
  TIMER_CTL_TAEN_bit = 1;             // Enable timer A 

while(1)  ;

}


Ik ben op zoek naar de plaats waar ik die 60 seconden in kan stellen.
En waar zet ik de GotoSleep(); routine in de Timer0A_interrupt() of ergens anders?

Thx!
Guus

Advertisement

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Simple timer event example

Berichtdoor shooter » 03 Sep 2014, 12:54

dit is geen arduino taal maar processor C, en dus maak je het jezelf nogal moeilijk
kijk eerst maar eens hoe jouw programma gedaan wordt in arduino, met interupt.
de compiler van arduino maakt er inderdaad zoiets van zoals jij schrijft, en daarna de hexcode.
de waarde moet staan in TIMER0_TAILR dus jij schrijft daar 120.000.000 dan krijg je elke seconde een interupt.
in de interupt worden een paar ledjes getoggled hierboven
jij zult dan tot 60 moeten tellen en dan je scherm uitzetten.
paul deelen
shooter@home.nl

Berichten: 12
Geregistreerd: 22 Aug 2014, 09:46

Re: Simple timer event example

Berichtdoor Guus2005 » 03 Sep 2014, 13:05

Hoi Shooter,

Ik heb het programma werkend gekregen.
De timer loopt en loopt en loopt...

Nu moet ik de timer nog stoppen.

Maar bedankt zover!

Grtz.

Terug naar Overige hardware

Wie is er online?

Gebruikers in dit forum: Google [Bot], Google Adsense [Bot] en 21 gasten