Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Interrupt i PIC16F876A, gde gresim

[es] :: Elektronika :: Mikrokontroleri :: Interrupt i PIC16F876A, gde gresim

[ Pregleda: 2511 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Sepa011

Član broj: 161918
Poruke: 1817
*.adsl.beotel.net.



+28 Profil

icon Interrupt i PIC16F876A, gde gresim29.12.2007. u 09:46 - pre 198 meseci
Posto u svojim zavrzlamama retko imam potrebe da koristim interapte, ovog puta, jednostavno moram, medjutim :(
elem, ovo je parcence seme sa piconjom 876A koji bi trebao da uskoci u obradu stanja na PORTB kada bilo koji od pinova bude 'priheftan' na masu (RB0/INT bi trebao da otera uC u interapt). E, sad, hardverski sve fonkcionise (bilo koji od Cnt pin-ova kada se povuce na Lo, i RB0/INT ode na Lo, medjutim, PIC ne odlazi u interapt rutinu.

Evo kako izgleda kostur programa (Proton+)
Code:

Device 16F876A
ALL_DIGITAL true
PORTB_PULLUPS false
XTAL 8

on_interrupt GoTo Intrpt
on_hardware_interrupt GoTo Intrpt

Declare LCD_DTPIN     PORTC.0
Declare LCD_ENPIN     PORTC.4
Declare LCD_RSPIN     PORTC.5
Declare LCD_INTERFACE 4
Declare LCD_LINES     2
Declare LCD_TYPE      ALPHA
Declare RSIN_TIMEOUT  60000
Declare RSIN_PIN      PORTC.7
Declare RSIN_MODE     true
Declare SERIAL_BAUD   1200

'****************************************************************
'* Definicije pinova                                            *
'****************************************************************
Symbol Cnt1      PORTB.1
Symbol Cnt2      PORTB.2
Symbol Cnt3      PORTB.3
Symbol Cnt4      PORTB.4
Symbol Cnt5      PORTB.5
Symbol Cnt6      PORTB.6
Symbol BackLight PORTA.5
Symbol Light     PORTA.0
Symbol SenseRX   PORTB.7

Symbol GIE = INTCON.7
Symbol INTEDG = OPTION_REG.1
Symbol INTF = INTCON.1
Symbol INTE = INTCON.4

'****************************************************************
'* Promenljive                                                  *
'****************************************************************
.
.
.
'****************************************************************
'* Konstante                                                    *
'****************************************************************
.
.
.
Clear
DelayMS 100
INTEDG = 0
INTF = 0
Enable Interrupt
GoTo Glavni
'****************************************************************
'* Podprogrami                                                  *
'****************************************************************
.
.
.
.
'****************************************************************
'* Obrada interapta                                             *
'****************************************************************
Intrpt:
    GIE = 0
    Promena = 1
    ZaUpis = 1
    Stanje = PORTB
    INTF = 0
    GIE = 1
Context Restore    

'****************************************************************
'* Glavni program                                               *
'****************************************************************
Glavni:

.
.
.

If Promena = 1 Then
    If Stanje.1 = 0 Then
        Inc Counter1
        Promena = 0
    EndIf
    
    If Stanje.2 = 0 Then
        Inc Counter2
        Promena = 0
    EndIf
    
    If Stanje.3 = 0 Then
        Inc Counter3
        Promena = 0
    EndIf

    If Stanje.4 = 0 Then
        Inc Counter4
        Promena = 0
    EndIf

    If Stanje.5 = 0 Then
        Inc Counter5
        Promena = 0
    EndIf

    If Stanje.6 = 0 Then
        Inc Counter6
        Promena = 0
    EndIf
    Stanje = $FF
EndIf

Inc Brojac
' Da li je proslo dovoljno vremena da se upisu podaci u EEPROM
If Brojac = $FFFE And ZaUpis = 1 Then
    GoSub UpisiEE
EndIf

If Brojac = $FFFE And ZaUpis = 0 Then
    Brojac = 0
EndIf

GoTo Petlja
Kraj:
End


Ehm, jos da prikacim i parce seme, al' to drugi put.
Prikačeni fajlovi
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.smin-1.sezampro.yu.



Profil

icon Re: Interrupt i PIC16F876A, gde gresim30.12.2007. u 13:23 - pre 198 meseci
Scepo nisi omogucio taj interapt, INTE=1 u INTCOM registru.
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
*.adsl.beotel.net.



+28 Profil

icon Re: Interrupt i PIC16F876A, gde gresim30.12.2007. u 21:03 - pre 198 meseci
Citat:
sander: Scepo nisi omogucio taj interapt, INTE=1 u INTCOM registru.


Videcu, najverovatnoje veceras/nocas, mozbit'. Kad ti galvudza ode u overload, svasta se previdja

01:11 > Sredjeno, to je bilo to
Sada mogu da se popnem liftom na 6-ti sprat i da iskocim iz podruma

Hvala jos jednom

[Ovu poruku je menjao Sepa011 dana 31.12.2007. u 01:13 GMT+1]
 
Odgovor na temu

sander
Aleksandar Golovic
Beograd

Član broj: 21336
Poruke: 211
*.adsl-1.sezampro.yu.



Profil

icon Re: Interrupt i PIC16F876A, gde gresim04.01.2008. u 22:59 - pre 198 meseci
Jel` onim liftom sto si mu cackao ventile? :)
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Interrupt i PIC16F876A, gde gresim

[ Pregleda: 2511 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.