PIC16F877 und ICD

  • Moin!


    Kennt sich hier zufällig jemand mit dem oben genannten uC aus?


    Wollte das erstmal fragen, bevor ich hier mit weiteren Details nerve... :D


    CU


    sushi

    "We've all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare.
    Now, thanks to the Internet, we know this is not true."
    -Robert Wilensky

  • LoL, ich kapier keinen der drei von dir genannten Begriffe..:D Worum gehts bitte?

    Walking on water and developing software from a specification are easy if both are frozen.
    – Edward V Berard

  • :D *lol* :D


    Ok, dann das ganze nochmal auf deutsch:


    Ich wollte wissen ob hier jemand ein bißchen Erfahrung mit dem Microcontroller PIC 16F877 von Microchip im Zusammenspiel mit dem zugehörigen In-Circuit Debugger (ICD) hat. Das Gespann produziert bei mir nämlich ziemlich seltsame Fehler.


    :) besser? :D


    MfG


    Sushi

    "We've all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare.
    Now, thanks to the Internet, we know this is not true."
    -Robert Wilensky

  • Hi!


    Hab mit dieser Kombination vor kurzem Teile meiner Dipl.-Arbeit bestritten... kenne mich mit dem Zeugs also schon ein wenig aus... kannst gerne hier das Problem posten oder mir per PN schreiben...


    Gruß WhiteNoise

  • Super! :D


    Im TT findet man wirklich immer den geeigneten Gesprächspartner :cool:


    Mein Problem:


    Ich habe den Port A als digitalen Ausgang konfiguriert.
    Wenn ich nun z.B. Bit 1 im Register PORTA setze wird dies im SFR Fenster auch brav angezeigt und ich messe den zugehörigen Pin in der Schaltung auch als High. Setze ich nun gleich danach Bit 2, wird dies im SFR Fenster nicht angezeigt ( Bit 1 bleibt aber in dieser Anzeige auf 1). In der Schaltung messe ich den Pin für BIT 2 aber als High und (jetzt kommt das wirkliche Problem) den Pin für BIT 1 aber wieder als LOW!? Wie kommt denn sowas? Wenn ich den Code nicht im ICD durchsteppe, sondern im Simulator von MPLAB läuft alles einwandfrei!


    Ich hoffe das war verständlich beschrieben. Ich hänge Dir hier nochmal nen Codeschnipsel ran:


    ORG 0x0000
    NOP
    BCF STATUS,RP1
    BSF STATUS,RP0
    CLRF TRISA
    MOVLW 0xFF
    MOVWF ADCON1
    BCF STATUS,RP0
    BCF STATUS,RP1
    CLRF PORTA
    BSF PORTA,1
    BSF PORTA,2


    END


    Damit läßt sich bei mir dieses seltsame Verhalten reproduzieren. Ich hab schon vier andere 16F877 durchprobiert, bei allen passierte das Selbe. Am Controller liegts also wohl nicht...


    Wäre super, wenn Du eine Idee hättest, woran das liegen könnte!


    MfG


    sushi

    "We've all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare.
    Now, thanks to the Internet, we know this is not true."
    -Robert Wilensky

  • Ich habe auch schon einiges mit den PIC´s gemacht allerdings ohne ICD sehe allerdings keinen grund warum Port A bit1 auf low geht.


    Gruß Norge

    Irgend wann ab in den Norden.


    Mitglied NR.33 und Schlafmütze im S///-Lampenbesitzer-Club


    Ironie ist, wenn der Mensch, den du liebst, vergeben ist, obwohl er monatelang hinter dir her war.

  • Hallo!


    Nur so eine Idee...


    Warum setzt du ADCON1 auf 0xFF? wäre da nicht 0xF7 besser?


    (Hab aber grad kein Datenblatt vom 16F877 zur Hand. Nur eines vom 16F870, deshalb nur eine Vermutung...)



    XdreaM

  • Norge:


    :) Und genau das ist mein Problem: Ich sehe auch keinen Grund warum das Bit auf Low gehen sollte. An der äußeren Beschaltung kanns ja wohl nicht liegen, da alle Pins als Ausgang geschaltet sind (mal abgesehen davon, das da eh nur ein bißchen TTL Logik dran hängt).


    Wenn ich den Code ohne Debug Modul (dafür aber mit Delay's zwischen den BSF) in den Controller lade und mir dann mal anschaue was passiert: same, same.


    Ich glaub ich muß nochmal die Sillicon Errata's durchwühlen... :mad:

    "We've all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare.
    Now, thanks to the Internet, we know this is not true."
    -Robert Wilensky

  • XdreaM:


    Holla! Ich glaub ich sollte Feierabend machen für heute ;)


    Ich habs zwar noch nicht getestet, aber ich muß gestehen, da hab ich wohl einen Bock geschossen! Du hast recht! Ist auch beim 877 so... 0xF7 oder 0xF6 ist natürlich die richtige Einstellung für "all pins digital".
    Ja, ja wie war das noch mit den Wald und den Bäumen?


    Ich werds morgen gleich mal testen und das Ergebnis posten.


    Vielen Dank und schönen Feierabend!


    sushi

    "We've all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare.
    Now, thanks to the Internet, we know this is not true."
    -Robert Wilensky


  • Mahlzeit!


    Genau auf dieses Ergebnis bin ich nach dem Studium des Datenblattes auch gekommen. ADCON1 auf 0xF7 setzen. Sonst ist PIN A2 als Vref- und nicht als Digital I/O definiert...


    Gruß WhiteNoise


    Uuups.... im doppelten Sinne zu spät... ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!