logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

MSP 430 - svs, wymuszenie stanu 1 na SVSFG

lemba 29 Lis 2008 19:55 1966 8
  • #1 5798406
    lemba
    Poziom 10  
    czesc. Mam problem. Oddawalem ostatnio projekt z msp wykorzystujacy dzialanie SVS ( kontroler napiecia zasilania). Programowo piziom napiecia byl ustawiony na 2,5 V. Przy tym stanie zawsze flaga SVSFG byla 0, czyli napiecie nie spadalo ponizej poziomu. Prowadzacy dal mi zadanie wymusic na SVSFG 1, czyli taki stan, ze napiecie zasilajace bedzie nizsze od ustawionego poziomu. Ustawilem wartosc napiecia na 3,7 v (najwyzsza), ale i tak napiecie zasilania znajdowalo sie ponad ta granica. Czy ktos wie jak wymusic tam stan zerowy? W zalaczniku zamieszczam fragment programu. dzieki
  • #2 5798561
    Konto nie istnieje
    Konto nie istnieje  
  • #3 5808578
    lemba
    Poziom 10  
    O jakich opóznieniach mowisz? Wiesz, problem jest w tym, ze nawet jak flaga jest 0 to on wchodzi do warunku
    if (svsfg==1)
    {...
    }
    To jest dziwne. Znaszmoze jakies racjonalne wytlumaczenie? A moze uzyc case ?
  • #4 5808735
    Dr_DEAD
    Poziom 28  
    lemba napisał:
    O jakich opóznieniach mowisz? Wiesz, problem jest w tym, ze nawet jak flaga jest 0 to on wchodzi do warunku
    if (svsfg==1)
    {...
    }
    To jest dziwne. Znaszmoze jakies racjonalne wytlumaczenie? A moze uzyc case ?

    Pokaż kod asemblera wygenerowany dla tego warunku, to Ci odpowiem na pytanie.
  • #6 5811772
    Konto nie istnieje
    Konto nie istnieje  
  • #7 5811838
    Dr_DEAD
    Poziom 28  
    SVSFG jest poprostu zdefiniowane jako 1
    
    #define SVSFG               (0x01)    /* SVS Flag */
    

    więc nie dziw się że Twój poprzedni warunek nie działał.
    powinno być tak:
    
    if(!(SVSCTL&SVSFG))
        {
          wysokie_napiecie();
        }
    
        if(SVSCTL&SVSFG)
        {
          niskie_napiecie();
          SVSCTL &= ~SVSFG ;
        }
    
  • #8 5811923
    Konto nie istnieje
    Konto nie istnieje  
  • #9 5811965
    Dr_DEAD
    Poziom 28  
    albertb napisał:
    Dr_DEAD napisał:
    SVSFG jest poprostu zdefiniowane jako 1


    Eh, zepsułeś mi cały proces dydaktyczny ;-)

    Albert

    Oszczędziłem Ci nerwów ;-)
REKLAMA