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

Atxmega256A3BU - [assembler] termometr NTC przy użyciu CD4511be na wys. 7 seg

dwiaterpl 23 Maj 2015 13:22 1089 2
REKLAMA
  • #1 14714454
    dwiaterpl
    Poziom 1  
    Witam.

    To mój pierwszy post wiec proszę o wyrozumiałość.
    Wraz z kolegami z zespołu dostaliśmy zadanie aby zrobić termometr przy użyciu dekoderów cd4511be do które będą sterowały dwoma wyświetlaczami siedmio-segmentowymi które działają w ze wspólną anodą. Temperatura ma być podana z dokładnością do 1 stopnia C.

    Napisaliśmy program do terowania MC. Używamy Atmel Studio 6.2 jak włączam symulacje to jeżeli chodzi o stany portów, sterowanie dekoderami na wyjściu portu C stany logiczne są prawidłowe ale problem w tym że dekodery domyślnie działają na wyświetlacze działające ze wspólna katodą znalazłem schemat podłączenia tak aby działały zgodnie z posiadanymi wyświetlaczami ale po jakimś czasie zaczynają wyświetlać losowe liczby.

    Pytanie, czy powinienem sterować nóżkami BL LE LT z MC czy na sterować na "sztywno" z płytki uniwersalnej.

    Ustawiłem ADC na wyniki w 8bitach lecz wyniki w tabelce dołączonej do dokumentacji płytki są podane w 12bitach według wzoru ADC=(Vin * 1024)/Vref wyliczyłem Vref i podstawiłem do wzoru już nie 1024 a 256 lecz wyniki podane maja końcówki 0,75 0,50 0,25 i nie wiem czy powinienem zaokrąglać czy po prostu przeliczać bez tej reszty.

    Program jak narzazie testowy od 17 do 23 stopni.

    Kod: text
    Zaloguj się, aby zobaczyć kod


    jakieś pomysły? coś ktoś? możne coś źle zrobiłem? jak testowałem program to działa jak należny w symulatorze.
  • REKLAMA
  • Pomocny post
    #2 14715238
    kamyczek
    Poziom 38  
    Błąd jest w konwersji dekoder pokazuje to co dostaje na port . W programie brak inicjalizacji stosu . Konwersję tego typu łatwiej wykonywać odejmując od wyniku konwersji wartość przetwornika stałą i inkrementując liczbę operacji odejmowania do chwili otrzymania wartości zerowej lub ujemnej . gdy pozostała wartość będzie mniejsza lub równa zero liczba operacji jest równoznaczna z temperaturą .
  • #3 14805519
    blaszkass
    Poziom 1  
    kamyczek napisał:
    Błąd jest w konwersji dekoder pokazuje to co dostaje na port . W programie brak inicjalizacji stosu . Konwersję tego typu łatwiej wykonywać odejmując od wyniku konwersji wartość przetwornika stałą i inkrementując liczbę operacji odejmowania do chwili otrzymania wartości zerowej lub ujemnej . gdy pozostała wartość będzie mniejsza lub równa zero liczba operacji jest równoznaczna z temperaturą .


    witam,
    czyli dokładnie co masz na mysli? bo probowałem ten kod odpalac ale tez nie jest tak jak trzeba bo powstaja glupoty z wyswietlaniem temperatur, chodzi mi o to jak to w kodzie zapodać zeby bylo ok bo cos nie wychodzi..thx
REKLAMA