Wpis z mikrobloga

Dlaczego funkcja (znaleziona w przykładach dla atmegi, ale w arduinoIDE tez sie kompiluje)

bit_is_set(ACSR,ACO)
zwraca mi cały czas 1, nawet kiedy oba piny komparatora ustawię po prostu jako wyjscie+stan niski? Powinno zwracać 1 tylko gdy napięcie na pinie 6 jest większe niż na 7, a tak nie jest. Sprawdzałem na 2 arduino i w obu przypadkach to samo. Komparator działa tylko, gdy oba piny są ustawione jako wejścia?
#arduino #atmega #elektronika
  • 6
  • Odpowiedz
@Atraktor: Teraz doczytałem, że chcesz używać komparatora z ustawionymi pinami jako wyjścia. Po co? Nie chce mi się szukać w dokumentacji, ale na 99% to nie będzie działać, bo piny zapewne są wtedy fizycznie odłączone od komparatora.
  • Odpowiedz
@Atraktor: Ustaw piny jako wejścia bez pullupów i pamiętaj, że komparator ma jakąś ale niezerową histerezę. Ustaw ain1 dzielnikiem na połowę napięcia zasilania i zmieniaj potencjometrem napięcie na ain0. Tak sprawdzaj czy działa.
Najlepiej nie ufaj domyślnej konfiguracji rejestru ACSR i zrób to sam, zanim jakiś fragment kodu arduino ide zrobi to za ciebie.
  • Odpowiedz
@matix21: @Analityk: dzięki, chciałem dać 0 napięcie na AIN1 żeby wykrywać wszelkie odchylenia na AIN0. W takim razie ustawię AIN1 na wejscie i podłączę do masy.

Najlepiej nie ufaj domyślnej konfiguracji rejestru ACSR i zrób to sam

masz na myśli żeby dla pewności zerować rejestr na początku?
  • Odpowiedz