[elektro] PIC32 flag probléma

Kiss Gabor kissg at ssg.ki.iif.hu
Thu May 3 12:08:55 CEST 2012


On 05/03/2012 10:51 AM, Balla Zoltán wrote:
> Szóval egy 32 bites PIC soros portját szeretném beüzemelni. Az
> alapkoncepció, hogy az adatok kiküldése(és fogadása is, bár ez most még
> nem érdekes), megszakításból menjen ki.
> A problémám az, hogy amint megjön a megszakítás a soros porttól, ugye a
> klasszikus módon, törölni kellene a hozzá tartozó flag-et. És ezzel van
> a bajom, nem tudom törölni sehogyan sem. Így az első megszakítástól
> kezdve mást sem csinál, csak állandóan ciklikusan beesik a megszakítási
> rutinba.
> Ha debug módban kézzel törlöm a megszakítási rutinban, akkor is a köv
> utasításnál visszaíródik 1-be, olyan, mintha nem írható volne ez a bit....
> Mi lehet az oka ? Mit nem vettem észre, amiben ez a proci különbözik a
> 16-os procikig bezárólag ?

Nem kifejezetten ehhez a hardverhez kötődő információ, hanem 
általánosabb séma következik. Itt is működnie kellene.
Unix/Linux stb. op. rendszerekben a következő algoritmus kezeli a
soros portot:

Transmit IT rutin:
  Ha van kiküldendõ karakter a bufferben, olvasd ki, írd be a
      transmit regiszterbe!
  Egyébként tiltsd le a Transmit IT-t!

Transmit rutin:
  Ha nincs hely a bufferben, térj vissza hibával!
  Tedd be a küldendő karaktert a bufferbe!
  Engedélyezd a transmit IT-t! (Ha ez olyan hardver, hogy ettől
     nem üt be azonnal az IT, akkor kézzel kell kiküldeni az
     első karaktert.)

Gondolom innen lehetne meríteni pár ötletet.

g
-- 
Kolmogorov valószínűleg élt,
Kolmogorov valószínűleg él,
Kolmogorov valószínűleg élni fog.



More information about the Elektro mailing list