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

Jak przesłać komendę 0x33h do DS1990A iButton z AT89C2051 w C?

flapo213 11 Gru 2005 15:28 2479 6
REKLAMA
  • #1 2074017
    flapo213
    Poziom 21  
    Posty: 566
    Pomógł: 35
    Ocena: 10
    Witam. Czy ktoś ma może jakiś kawałek programu którym można przesłać komendę do urządzenia Slave. Tzn. jak przesłać komendę 0x33h do pastylki. Ja mam tu uczone książki w których niby jest ale zakręcone na maksa. Piszę programy w języku C. Pomóżcie. Byle coś nie za mocno skomplikowanego. Pozdrawiam
  • REKLAMA
  • REKLAMA
  • #3 2074560
    j_saw
    Poziom 13  
    Posty: 67
    Pomógł: 2
    Ocena: 59
    To co kolego powyżej napisał to link do AVR - chociaż można i z tego coś się nauczyć. Jak chcesz porządne procedury w C do '51 to ściągnij sobię ze strony Maxim/Dallas notę aplikacyjną nr 162 (Aplication Note 162) pt. "Interfacing the DS18x20/DS1822 1-Wire .......... in a Micro-Controller Environment" tam jest wszystko opisane.

    ps. Skoro jesteś z Rzeszowa to zadzwoń
  • #4 2078684
    flapo213
    Poziom 21  
    Posty: 566
    Pomógł: 35
    Ocena: 10
    Dzięki za podpowiedź ten link z dotyczący avr jest świetny. Dzięki również popatrzę na noty aplikacyjne Dallasa. Teraz męczę się z I2C. Mam książkę ale nie będę tytułować autora bo nikogo nie chcę obrażać ale jest do bani ani programi z 1 wire ani i2c nie dziala. Chyba że sobie to wyobraże ale powoli dochodze do sedna sprawy. Acha czy ktoś programował już w nowym uvisionie 3.0 dziwnie kompiluje dla procka 89c2051. Podzielcie się wrażeniami. Nie jest zły świetnie zmienne lokalne obrazuje nawet te z funkcji, czego nie można powiedzieć o ride 51. Ride natomiast dobrego hexa tworzy itd. itd.
  • REKLAMA
  • #5 2081539
    _myszon
    Poziom 15  
    Posty: 119
    Pomógł: 13
    Ocena: 18
    Hej, j_saw przekręciłeś numer noty. Poprawny to ApNote 126
    (1-wire communication through software).
  • REKLAMA
  • #7 2082135
    flapo213
    Poziom 21  
    Posty: 566
    Pomógł: 35
    Ocena: 10
    Witajcie ponownie. Słuchajcie mam nietypowy problem z I2C. W bascomie napisalem program i jest ok zapisuje dane do pamieci. Problem mam w jezyku c. ponizej podaje procedury z jakich korzystam, mam je z roznych zrodel i nie widzę błędu, o co może chodzić, acha próbuje zapisać do pamięci 24c04.
    void delayi2c(void)
    {
    asm{0x00};
    asm{0x00};
    }
    void i2c_start(void) //Inicjacja magistrali Start I2C
    {
    sda=scl=1;
    delayi2c();
    sda=0;
    delayi2c();
    scl=0;
    }

    bit i2c_stop(void) //Wysłanie sekwencji Stop na I2C
    {
    sda=0;
    delayi2c();
    scl=1;
    delayi2c();
    sda=1;
    delayi2c();
    return (~sda);
    }

    bit i2c_send(unsigned char byte) //Wysylanie bitu na magistralę I2C
    {
    unsigned char bitcount=9;
    bit temp;

    do
    {
    scl=0;
    sda=byte&0x80;
    byte=(byte<<1)+1;
    delayi2c();
    scl=1;
    delayi2c();
    }while(--bitcount);
    temp=sda;
    scl=0;
    return(temp);
    }
    void main(void)

    {
    i2c_start();
    i2c_send(0xA0);
    i2c_send(0x00);
    i2c_send(0xA2);
    i2c_stop();
    while(1);
    }

Podsumowanie tematu

✨ Dyskusja dotyczy przesyłania komendy 0x33h do urządzenia DS1990A iButton za pomocą mikrokontrolera AT89C2051 w języku C. Użytkownik poszukuje prostego przykładu programu do komunikacji 1-Wire z urządzeniem Slave. Wskazano, że dostępne materiały dotyczące AVR mogą być pomocne, jednak bardziej odpowiednia jest nota aplikacyjna Maxim/Dallas nr 162, opisująca interfejs 1-Wire w środowisku mikrokontrolera, zawierająca szczegółowe procedury w C. Pojawiła się też korekta dotycząca numeru noty (126 vs 162), potwierdzająca, że właściwa jest ApNote 162. Autor dodatkowo zgłasza problemy z implementacją protokołu I2C w języku C dla pamięci 24C04, prezentując fragmenty kodu funkcji start, stop i wysyłania bajtu na magistralę I2C. Dyskusja obejmuje także uwagi na temat środowiska kompilatora uVision 3.0 dla AT89C2051 oraz porównanie z Ride 51.
Wygenerowane przez model językowy.
REKLAMA