I2C Problem PIC16F876

Gast #3295235
Lesenswert?
• ▲
▼
Guten Tag

Für ein Projekt von mir wollte ich mal ein I2C Testprogramm schreiben.
Leider funktioniert es nicht.
Ich will mit 2 PIC16F876 (Master, Slave) kommunizieren.
Die Programmierung erfolgt in C auf MPLAB mit einem PICKit3.

Programm Master:

main.c:
1
#include <main.h>
2

3

4
int value = 0x01;
5
int din = 0x00;
6

7
void Bus(void){
8

9
    i2c_start();      //I2C Bus starten
10
    i2c_write(0xa0);    //Slave Adresse
11
    i2c_write(value);      //Daten senden
12
    i2c_start();      //I2C Bus restarten
13
    i2c_write(0xa1);    //Slave Adresse
14
    din=i2c_read(0);  //Daten von Slave lesen
15
    i2c_stop();        //I2C Bus stoppen
16

17
}
18

19
void main()
20
{
21

22
  while(TRUE)
23
  {
24

25
    if(input(PIN_A0)==1)
26
    {
27
      output_c(0x02);
28
      value = 0x01;
29
      Bus();  
30
    }
31
    else
32
    {  
33
      output_c(0x01);
34
      value=0x00;
35
      Bus();  
36
    }
37

38
    if(din==0x01)
39
    {
40
      output_c(0x0F);
41
    }
42
    delay_ms(10);
43
  }
44
}

main.h:
1
#include <16F876.h>
2
#device adc=16
3

4
#FUSES NOWDT                   //No Watch Dog Timer
5
#FUSES HS                      //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
6
#FUSES PUT                     //Power Up Timer
7
#FUSES NOBROWNOUT              //No brownout reset
8
#FUSES NOLVP                   //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
9

10
#use delay(clock=8000000)
11

12
#use i2c(Master,Fast,sda=PIN_C4,scl=PIN_C3,restart_wdt,force_hw)



Als ich mit dem Debugger durch ging blieb er immer bei #use stehen.

Braucht es noch eine Include Datei fürs I2C? Oder liegt der Fehler wo 
anders?

Vielen Dank Simon

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.