Skocz do zawartości

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


Pomocna odpowiedź

Napisano

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.

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ć?

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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...