Forum elektroda.pl

Regulamin  | Punkty  | Dodaj...  | Ostatnie  | Szukaj  | Rejestracja  | Zaloguj

Ta strona używa cookie. Dowiedz się więcej o celu ich używania i zmianie ustawień cookie w przeglądarce.
Korzystając ze strony wyrażasz zgodę na używanie cookie, zgodnie z aktualnymi ustawieniami przeglądarki.

PCF8583 i problem z konwersja z BCD>BIN>DEC (Codevisio


Napisz nowy temat  Odpowiedz do tematu      Strona Główna -> Forum elektroda.pl -> Programowanie Ogólne -> PCF8583 i problem z konwersja z BCD>BIN>DEC (Codevisio
Autor
Wiadomość
yello
Poziom 6
Poziom 6


Dołączył: 27 Kwi 2003
Posty: 15

Post#1 Post autora tematu 09 Mar 2006 23:32   

PCF8583 i problem z konwersja z BCD>BIN>DEC (Codevisio


Witam,

Napisalem programik do centralki alarmowej
w Codevision C AVR na ATMega128.
Na plytce centralki jest zegar RTC PCF8583.
Jednym z zadan programu jest wysylanie
aktualnego czasu pobranego z zegara poprzez
Uart do szyfratora z LCD.
Problem polega na tym, ze wbudowane w biblioteki
procedury pobieraja czas z RTC i konwertuja go bcd2bin.
Chcialbym wyslac aktualny czas jako string np. "time: 22:24:58"
Jak narazie uzywam putchar() i wysylam pojedynczo godziny, minuty
i sekundy, a na koncu CR,LF.
Ale na porcie szeregowym w oknie terminala na
PC pojawiaja sie znaki Ascii (#$%-+()0123 itd...) zamiast np. sekund od 0 do 59.
Probowalem uzywac roznych funkcji wbudowanych (np. atoi() - w tym przypadku jednak nic nie jest wysylane) ale wciaz na port szeregowy wysylane sa znaki ASCI odpowiadajace aktualnie
odczytanej z zegara liczbie.
Co robie nie tak ?
Co i na co powienienem przekonwertowac i w jaki sposob ?

Z gory dziekuje za jakiekolwiek podpowiedzi

Pozdrawiam
Bartek
Powrót do góry
   
Google


Google Adsense


Post# 09 Mar 2006 23:32   





Powrót do góry
   
Samuraj
Poziom 22
Poziom 22


Dołączył: 08 Paź 2002
Posty: 2244
Miasto: Szczecin

Post#2 09 Mar 2006 23:49   

Re: PCF8583 i problem z konwersja z BCD>BIN>DEC (Codev


Ja to robie tak jeśli chodzi o lcd

Kod:

// wyswietlenie liczby
void lcd_sendnumber(unsigned int number,unsigned char wyr,char znak)
{
  unsigned char buf[9]="        ";
  ltoa(number,buf);            // zamiana liczby na string (syst. dziesietny)
  if (wyr !=0)
  {
    unsigned char b;
    for (b=wyr;b>1;b--)
      if (buf[b]==' ') lcd_sendchar(znak);   // dodanie spacji na poczatek      
  }   
  lcd_sendstring(buf);           // wyswietlenie na LCD
}


void pisz_godzine(void)
{
  rtc_get_time(0x01,&hour,&minu,&sec,&hsec);
  lcd_sendnumber(hour,2,' ');
  lcd_sendchar(':');
  lcd_sendnumber(minu,2,'0');
}

Powrót do góry
   
Google


Google Adsense


Post# 09 Mar 2006 23:49   





Powrót do góry
   
yello
Poziom 6
Poziom 6


Dołączył: 27 Kwi 2003
Posty: 15

Post#3 Post autora tematu 10 Mar 2006 00:15   

Re: PCF8583 i problem z konwersja z BCD>BIN>DEC (Codev


Witam,

Dziękuję serdecznie :))
Juz wszystko dziala tak jak trzeba.
Twoja podpowiedz byla bezbledna i nieoceniona.
Ponizej fragment kodu po lekkim przerobieniu na Uart:


void sendnumber(unsigned int number,unsigned char wyr,char znak)
{
unsigned char buf[9]=" ";
ltoa(number,buf); // zamiana liczby na string (syst. dziesietny)
if (wyr !=0)
{
unsigned char b;
for (b=wyr;b>1;b--)
if (buf[b]==' ') putsf1(" "); // dodanie spacji na poczatek
}
puts1(buf); // wyslanie na UART1
}


void main()
{
while(1)
{

rtc_get_time(0,&h,&m,&s,&hs);

putsf1("time:");

sendnumber(h,2,' '); //wyslij godziny

putsf1(":");

sendnumber(m,2,'0'); //wyslij minuty

putsf1(":");

sendnumber(s,2,'0'); //wyslij sekundy

putsf1("\r\n"); //CR,LF

waitms(1000);
}
}
Powrót do góry
   
Google


Google Adsense


Post# 10 Mar 2006 00:15   





Powrót do góry
   
Piecia
Poziom 14
Poziom 14


Dołączył: 07 Sty 2007
Posty: 152

Post#4 26 Sie 2009 19:08   

Re: PCF8583 i problem z konwersja z BCD>BIN>DEC (Codev


Hej
Pewnie temat juz nieaktualny ale jesli ktos jeszcze zaglada to moze mi pomoze:)
A wiec tak : chce wyswietlic ta sama metoda jednak po pobraniu danych z RTC wyswietla mi wartosci wszystkich danych (godz, min, sec) jako liczbe 165. Nie wiem czy problem tkwi w zlym programie czy niedzialajacym RTC??? Prosze o pomoc

dziekuje i pozdr
Powrót do góry
   
Napisz nowy temat  Odpowiedz do tematu      Strona Główna -> Forum elektroda.pl -> Programowanie Ogólne -> PCF8583 i problem z konwersja z BCD>BIN>DEC (Codevisio
Strona 1 z 1
Podobne tematy
konwersja dec na bcd (7)
[C]Konwersja dec na bin lub dodawanie bin (7)
Wyświetlanie konwersja BCD, DEC na LED atmega c++ (2)
[ATmega16][C] konwersja liczby bin na dec (4)
[asm][avr] Konwersja BCD to BIN (3)
Konwersja DEC na U2 w C. (1)
Konwersja HEX na DEC. (1)
Zamiana HEX, BIN na DEC (10)
Konwersja DEC na znak moduł /U1/U2 (1)
konwersja HEX na DEC Prosze o pomoc (3)


Administrator || Moderatorzy || Regulamin forum || Regulamin ogólny || Informacja o cookies || Reklama || Kontakt

Page generation time: 0.043 seconds

elektroda.pl temat RSS