8051 Probleem?

S

Sphinx

Guest
Hoi,

Ik heb de setup Timer1 overflow Interrupt om elke 50ms (te doen bepaalde taak)
Mijn belangrijkste programma wat taak proces ook.

Een van het proces te sturen seriële karakters (Met SBUF Register).
Het duurt geruime tijd voor het verzenden van 3 tekens en het sturen nullen!

Ik probeerde uit te schakelen alle onderbreken "EA = 0;" voordat ik een seriële tekens, maar zonder succes, het probleem is nog steeds aanwezig zijn.

Maar als ik het verwijderd Timer1 onderbreken setup, het werkt goed.

Wat is de oplossing?
Ik gebruik Keil 7,08 C51 Compiler

Hartelijk dank
Sphinx

 
Controleer uw timer1 interrupt routine en gehandicapten seriële onderbreken?
en do u herlaadt timer1 op onderbreken?en ....

 
Als ik het goed begrijp:

U hebt belangrijkste programma dat het verzenden via de seriële poort 3 karakters.

Ondertussen hebt u onderbreken elke 50ms, die soms worden in een midden van het verzenden van seriële gegevens.

Met EA u alle interrupts zo youdisable en seriële onderbreken.

U kunt slechts 1 Timer interrupt (ET1 in IE-register).

Dus als u overflow van T1 SBUF nog kan onderbreken en de hele zaak is goed te werken.

Groeten.

Mr.Cube

 
Sorry voor de taal:

de TIMER 1 wordt gebruikt voor de routinematige VOLGNUMMER, gebruik Timer 0 voor Interruptie

 
Wanneer u alle INTERUPTS,
kunt u ook uitschakelen baudrate GENERATOR TIMER, dus ...zo eenvoudig
is het.ur uitschakelen je seriële belangrijkste taak.

Hoop dat dit nuttig is.

 
Bedankt alle jongens.
Ja, er is een conflict tussen seriële en Timer1 onderbreken omdat ik de Baudsnelheid door Timer1

Nu gebruik ik Timer0 plaats Timer1 en het werkt prima.

Mijn code is 600 regels C-code (C51 Keil)

Dus ik heb niet gemerkt dit eenvoudige probleem.

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triest" border="0" />Mijn project is dagonderwijs volgt met behulp van Proximity Cards.

Thanks again

 

Welcome to EDABoard.com

Sponsor

Back
Top