Skocz do zawartości

ATmega16 - Krzaczki i artefakty na wyświetlaczu LCD 2x8.


ElectroBeginner

Pomocna odpowiedź

Witam posiadam robota, który ma w sobie czujniki i napisałem, aby wyświetlał wartości na wyświetlaczu [ze sterownikiem HD44780], lecz dziwne rzeczy się po uruchomieniu lub po jakiejś chwili z nim dzieją (załączam zdjęcia), niektóre rzeczy, których nie uchwyciłem to gdy wszystkie pola były zawalone krzaczkiami i migały co chwile zmieniając się na inne, lub gdy wszystko znikało i tylko jakiś numer np #8 w prawym dolnym rogu był, a czasem też potrafi się zawiesić i wartość na LCD stoi.

Oto zdjęcia jak jest nie tak, a powinno wyglądać, że u góry pisze "Pomiar:" a na dole na środku wartość od 0 do 1023 [wynik akurat z dalmierza]

Kod:

#define F_CPU 8000000UL
#include "stdio.h"
#include "stdlib.h"
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "HD44780.h"
#include "HD44780.c"

int main(void)
{

char wynik[4];
LCD_Initalize();
LCD_GoTo(0, 0);
LCD_WriteText("Pomiar:");
DDRA = 0xFF;
DDRA &= ~(1<<PA7);
ADMUX=(1<<REFS0)|(1<<MUX1)|(1<<MUX0)
  |(1<<MUX2);
ADCSRA=(1<<ADEN)
      |(1<<ADPS2)
   |(1<<ADPS1)
   |(1<<ADPS0);

for(;;)
{
ADCSRA |= (1<<ADSC);

while(ADCSRA & (1<<ADSC));

LCD_GoTo(2, 1);
LCD_WriteText("    ");
itoa(ADC,wynik,10);
LCD_GoTo(2, 1);
LCD_WriteText(wynik);
_delay_ms(200);
}
}

Schemat:

Pomocy, bo przeszkadza mi to bardzo, że mi się wiesza i nie pokazuje wyników na LCD. Pozdrawiam.

Link do komentarza
Share on other sites

niestety nie mogę inaczej podłączyć tak mam zaprojektowany układ, i zawsze działał normalnie, lecz dzisiaj się coś zmarasiło, wyładowała mi się bateria od normalnego użytkowania, naładowałem do pełna i takie coś mi się dzieje. jako, że współdzieli ścieżki od programatora, może to być z tym powiązane, albo od częstego wgrywania programu (i machania przełącznikiem aby podłączyć programator przy wyłączonym zasilaniu, wgrać przy włączonym, wyłączyć by odłączyć programator i znowu włączyć do testu)? i czy przypadkiem nie stało się coś z ATmegą16 lub wyświetlaczem i trzeba wymienić? Co czynić?

Link do komentarza
Share on other sites

A programator masz cały czas podłączony ? Odłącz programator, i wyłącz zasilanie, poczekaj z 10 sek, i ponownie włącz. Mi też sie czasami tak działo, ale wystarczył taki właśnie restart.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.