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

Jak odczytać napięcie na nóżce uPC HC908QT4 w assemblerze?

piotrekkkk 05 Mar 2012 23:58 2778 9
REKLAMA
  • #1 10639678
    piotrekkkk
    Poziom 12  
    Witam, mam zrobić projekt na uPC HC908QT4 jednak napotkałem problem na który nie mogę sobie poradzić ze znalezieniem rozwiązania, mianowicie chodzi o pomiar napięcia na jednej z nóżek uPC i w zależności od wyniku pomiaru program ma podjąć konkretne działanie, problem jest dla mnie w przełożeniu na kod w assemblerze idei odczytu napięcia z konkretnej nóżki, proste programy typu migająca dioda udało mi się napisać i wypalić na uPC z sukcesem jednak ten problem okazał się dla mnie nie do przeskoczenia dlatego zwracam się z prośbą do szanownych forumowiczów o pomoc, sam że tak powiem raczkuję w tym temacie jednak projekt zrobić muszę, jeszcze raz proszę o pomoc.

    Udało mi się znaleźć coś takiego
    Cytat:
    CLRA
    CLRX
    LDA #$50
    STA ADCLK
    LDA #$03
    STA ADSCR

    CZEKAJ BRCLR 7,ADSCR, CZEKAJ
    MOV #$1F, ADSCR

    LDA ADRL

    obsluga:
    CMP #%10000000
    BLO SKOCZ
    BRA DZIALAJ


    Jednak ten kod działał dla uPC HC908QT8 natomiast na QT4 u mnie przy próbie kompilacji wyskakuje komunikat że nieznane są komendy ADCLK oraz ADRL
  • REKLAMA
  • #2 10653402
    piotrekkkk
    Poziom 12  
    A czy ktoś z szanownych kolegów mógłby mi napisać w jaki sposób zatrzymać program w danym miejscu na przykładowo 10 s ?? W jaki sposób mogę to zrealizować na uPC?
  • REKLAMA
  • #3 10666532
    kamil1cos7
    Poziom 14  
    Żeby zatrzymać to musisz napisać jakąś procedurę opóźniającą... Czytałeś chociaż pobieżnie datasheet tego uP?? Bo ADCLK i ADRL to są rejestry nie komendy, to jedna sprawa. A druga to ten procek nie ma takich rejestrów:P Są ADICLK oraz ADR...
  • REKLAMA
  • #4 10668560
    piotrekkkk
    Poziom 12  
    Tak, wczytałem się w note katalogową i problem przetwornika analog cyfra już rozwiązałem i działa, teraz skupiłem się na tym aby układ wstrzymać na 10s jednak jak narazie nie mam pomysłu jak to zrobić
  • #5 10670641
    kamil1cos7
    Poziom 14  
    Jeśli chcesz cały program wstrzymać na 10s to tak jak mówiłem jakąś procedurę opóźniającą napisz... A jeśli jakiś segment programu może jakieś przerwanie... wiele sposobów jest...
    Takie pytanie poza konkursem, studiujesz elektronika w Tarnowie??

    Dodano po 12 [minuty]:

    Sprawdź taką procedurkę opóźniającą...
      wait_100ms:
      ldx #50
      w_1:  pshx
            ldx #250
          w_0:  nop
                nop
                nop
                nop
                nop
                dbnzx w_0
            pulx
            dbnzx  w_1
      dbnza wait_100ms
      rts 


    Żeby otrzymać z niej OKOŁO 10s to musisz wywołać tak:
    lda #100
    jsr wait_100ms

    I to jest dla taktowania wewnętrznym kwarcem 4MHz.
    Pamiętaj że jeśli kwarc jest 4MHz to taktowanie wewnętrznej magistrali jest 1MHz.
  • #6 10672583
    piotrekkkk
    Poziom 12  
    Dzięki za pomoc, jak tylko wrócę do domu z delegacji to sprawdzę czy działa, odpowiadając na twoje pytanie studiuję zaocznie na agh w krakowie.
  • REKLAMA
  • #7 10673162
    kamil1cos7
    Poziom 14  
    A to spoko, tak myślałem że studiujesz elektronikę w Tarnowie albo na AGH w Krakowie bo chyba tylko tam się dostaje procesory freescale. Ja studiuje też na AGH elektronikę tylko że dziennie. Jakby coś nie działało to pisz, trochę się bawiłem tymi uP to może dam rade pomóc.
    A i jeszcze wyłącz sobie wachdog dopisując przed pętlą główna odpowiednią linijkę ustawiającą bit w CONFIG, doczytaj w datasheet który to jest bit.
  • #8 10674043
    piotrekkkk
    Poziom 12  
    Dzięki wielkie za zainteresowanie się tematem i pomoc. Wychodzi na to że jest to 7 bit (ostatni), będę temat testował w przyszłym tygodniu :)
  • #9 10674390
    kamil1cos7
    Poziom 14  
    A jaki masz ten projekt, tak z ciekawości pytam??
  • #10 10674878
    piotrekkkk
    Poziom 12  
    Centralka alarmowa.
REKLAMA