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

[atmega32][C] dokładność wyświetlania wartości prądu

margas4542 26 Sie 2022 18:16 681 4
REKLAMA
  • #1 20162242
    margas4542
    Poziom 16  
    Ten program pisałem jakieś 10 lat temu a teraz gdy już wiele zapomniałem z [C] zaszła konieczność zwiększenia dokładności pomiaru prądu stałego i nie potrafię sobie z tym poradzić . Obecna dokładność to wyświetlanie wartości pomiaru w zakresie 0.0 Amper do 20 Amper a potrzebowałbym 0.00 Amper do 20.00 A czyli przykładowo 16, amper 20(0)mA. Pomóżcie proszę.
    To część kodu ADC i wyświetlania na LCD 4x20.
    Kod: C#
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 20162468
    qwert2000
    Poziom 14  
    1. Sygnał z przetwornika dopasować tak aby max sygnału = napięciu ref.
    2. W związku że rozdzielczość przetwornika adc w At32 wynosi tylko 10b zastosować oversampling. Czyli sumować próbki, a potem podzielić przez ilość sumowań. Na przykład, 100 próbek podzielić na 100 i używać dwa miejsca po przecinku.
    3. Sprawdzić z przyrządem wzorcowym czy dało to spodziewane efekty.
  • REKLAMA
  • #3 20163363
    gps79
    Poziom 35  
    Wrzuć cały kod, a nie kawałek.
    Podejrzewam, że lcd_dbl(napiecie_aku, 2); wyświetli 2 miejsca po przecinku.
  • REKLAMA
  • #4 20163467
    margas4542
    Poziom 16  
    QWERT2000 dzięki za chęć pomocy ale jak wspomniałem niewiele już pamiętam z AVR dlatego proszę o poprawienie tego kodu by wyświetlał wartość prądu z dwoma miejscami po przecinku. Całego kodu nie będę wklejał ale zamiast tego wstawie plik header.h
  • #5 20167779
    miszcz310
    Poziom 24  
    margas4542 napisał:
    QWERT2000 dzięki za chęć pomocy ale jak wspomniałem niewiele już pamiętam z AVR dlatego proszę o poprawienie tego kodu by wyświetlał wartość prądu z dwoma miejscami po przecinku. Całego kodu nie będę wklejał ale zamiast tego wstawie plik header.h


    No spoko. Nie będę komentował kodu w pliku *.h. Jednakże, wszystko jest wyświetlane przy pomocy funkcji lcd_dbl(). Definicji tej funkcji nie ma w tym pliku, który przesłałeś więc nie wiadomo jak to działa dokładnie. Znajdź wywołania tej funkcji i spróbuj zrobić to co zostało już napisane, albo daj cały kod.
REKLAMA