i2c/smbus Debugger Problem!

Gast #4031392
Lesenswert?
• ▲
▼
Hallo Leute,

folgendes ich will mit SMBus meinen Digitalpoti ansteuern. Nun kann ich 
den SMBus_Busy zustand nicht mehr verlassen.

Ich kann die While-Schleife unten nicht mehr verlassen, sprich smbus 
wird nicht mehr frei.
Ich glaube das Problem liegt beim Debugger mit i2c/SMBus. Aber weiss 
keine Lösung dazu.

Habt ihr vielleicht eine Idee wie ich das Problem lösen kann.
Oder liege ich komplett falsch??

Danke im Voraus.
hier meine fkt
void SMB_Write (void)
{
   U32 a;
   while (SMB_BUSY);                   // Wait for SMBus to be free.
   SMB_BUSY = 1;                       // Claim SMBus (set to busy)
   SMB_RW = 0;                         // Mark this transfer as a WRITE
   STA1;        // Start transfer

  while(SMB_BUSY)
  {
     a++;
           if (a==20000000)
   {
      SMB0CF &= ~0x80;               // Disable SMBus
            SMB0CF |= 0x80;                // Re-enable SMBus
    //TMR3CN &= ~0x80; // Clear Timer3 interrupt-pending
         // flag
            STA = 0;
       SMB_BUSY = 0;                       // Free SMBus
   }

  }
}

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.