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

[ATMEGA8] [I2C] [24C64]

karol75 23 Lis 2008 12:43 2928 3
REKLAMA
  • #1 5773138
    karol75
    Poziom 16  
    Mam problem z magistralą I2C
    kody funkcji
    http://ds5.agh.edu.pl/~czaro/naukowo/soft/avr_twiobsluga.pdf

    
    #include <avr/io.h> 
    #include <stdlib.h>
    #include<inttypes.h>
    #include<avr/interrupt.h> 
    #include <util/delay.h>
    #include "../lib/lcd.h"
    #include "../lib/twi.h"
    
    
    #undef  F_CPU
    #define F_CPU                16000000 //częstotliwość zegara w Hz
    #define INIT1 12000
    
    
    
    unsigned int sekundy = 00;
    unsigned int minuty = 29;
    unsigned int godziny = 23;
    char tab[8];
    char bufor[8];
    uint8_t wys=0;
    unsigned char i, tmp1;
    
    // program główny 
    int main(void) 
    { 
      uint8_t adres;
      
      DDRD = 0xFF; 
      PORTD = 0xFF;
      
      DDRB=0xFF;
      DDRC = 0; 
    
      lcd_init();
    
      TWI_start();
      write_command(0x01); // czyść LCD
      write_text("TWI_start();");
      _delay_ms(1); 
      
      TWI_write(0xA0);
      write_command(0x01); // czyść LCD
      write_text("TWI_write(0xA0);");
      
      TWI_write(0x00);
      write_command(0x01); // czyść LCD
      write_text("TWI_write(0x0);");
      
      //TWI_write(0x1);
      write_command(0x01); // czyść LCD
      write_text("TWI_write(0x1);");
      
      //TWI_write(10);    
      write_command(0x01); // czyść LCD
      write_text("TWI_write(10);");
      
      TWI_stop();
      write_command(0x01); // czyść LCD
      write_text("TWI_stop();");
      
      _delay_ms(15);
    
      
      while(1)
      { 
      }  
    
    
     
    return 0; 
    }
    
    
    
    
    
    
    
    


    Próbuję zapisywać do pamięci 1 bajt

    Na wyświetlaczu widzę efekt
    TWI_write(0xA0);
    i koniec, procesor staje po adersowaniu układu.
    Jeżeli usunę adresowanie komurek pamięci to normalnie dalej działa.

    Co jest nie tak?
    Jak sprawdzić czy układ jest na magistrali?
  • REKLAMA
  • #2 5773264
    dawid512
    Poziom 32  
    Ortografia to raz:
    Cytat:
    komurek
    a po za tym to jak masz podłączone linie A0, A1, A2?
  • REKLAMA
  • #4 5773663
    karol75
    Poziom 16  
    Problem rozwiązany ---!! Uszkodzona Atmega !!---

    Dziękuję z zainteresowanie.

    Program działa i jest przykładem na sprzętową obsługę TWI w ATMEGA8
REKLAMA