-         

Ergebnis 1 bis 3 von 3

Thema: PIC16F874A in den Programmspeicher schreiben...

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    01.07.2005
    Beiträge
    12

    Böse PIC16F874A in den Programmspeicher schreiben...

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi,

    ich habe folgendes Problem. Ich wollte eine Tabelle die aus 256x10-bit Werten besteht im Programmspeicher des PIC16F874A ablegen, wobei einzelne Werte gelegentlich angepasst werden müssen.
    Das schreiben in ein leeren Programmspeicher (also mit 3FFF gefühlt) klappt ohne Probleme, das auslesen der Werte geht auch. Wenn ich jetzt versuche einzelne bestehende Werte zur ändern, dann werden dieser nicht korrekt in den Programmspeicher geschrieben. Es scheint so das gesetzte Bits gelöscht werden, aber gelöschte Bits nicht gesetzt werden, also 1=>0 geht aber 0=>1 geht nicht. Kann mir da jemand weiter helfen? Muss man den Programmspeicher vor dem Schreiben erst mal irgendwie "löschen" (auf 3FFF bringen?) Wie stelle ich es an das ich die vorhandenen Werte aus der Tabelle ändern kann?

    P.S. Ich habe das noch nicht auf dem PIC ausprobiert sondern nur in der IDE. Vielleicht macht die IDE hier irgendwelche Probleme?

    Gruß...
    Geändert von conmafi (29.06.2011 um 20:24 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    938
    Zitat Zitat von conmafi Beitrag anzeigen
    Hi,

    Muss man den Programmspeicher vor dem Schreiben erst mal irgendwie "löschen" (auf 3FFF bringen?) Wie stelle ich es an das ich die vorhandenen Werte aus der Tabelle ändern kann?
    Hallo conmafi.

    Das Schreiben in den Flash- bzw. EEPROM-Speicher ist in den Datenblättern von Microchip beschrieben. Ich hab's bisher allerdings nur schmökernd gelesen. Das ist ein genau definiertes, etwas umfangreiches Prozedere, das genau eingehalten werden muß einschließlich der Bedingung, daß stets vier Programmwörter in einem Rutsch geschrieben werden müssen. Einzelne Werte ändern geht nur durch Schreiben eines Viererblocks. Der eigentliche (Lösch- und) Schreibvorgang läuft erst nach der Übergabe des vierten Speicherwort und Setzen eines Schreibbefehl-Flags wirklich los und dauert etwa 4ms (alles sinngemäß laut Datenblatt).
    Soweit die Ecksteine des Datenblatts.
    Wird das alles eingehalten? Ich könnte mir gut vorstellen, daß eine Verletzung einzelner Bedingungen nicht abgefangen wird und zu einem solchen "halb-richtigen" Ergebnis wie "neue Nullen schreiben ohne die alten zu löschen" führen kann.

    Arbeitest du auf Asssemblerebene oder verläßt dich ander fraglichen Stelle vielleicht dein Hochsprachencompiler?
    Liegt dir das aktuellste Datenblatt vor? Auch wirklich zur Release-Nummer des Controllers passend ?

    Gruß
    Christian

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    Ein praktisch ausprobiertes Beispiel befindet sich im : http://www.rn-wissen.de/index.php/PI...iben_und_lesen das laut http://www.rn-wissen.de/index.php/PI..._.26_Mid-Range auf PIC16... mit Berücksichtigung allen Unterschiede zwischen der PIC Familien umgeschrieben werden muss.
    Geändert von PICture (30.06.2011 um 15:39 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

Ähnliche Themen

  1. Programmspeicher auslesen ?
    Von Gucky im Forum Assembler-Programmierung
    Antworten: 7
    Letzter Beitrag: 12.11.2007, 15:15
  2. Hilfe Programmspeicher voll!
    Von jojo.glaser im Forum C - Programmierung (GCC u.a.)
    Antworten: 11
    Letzter Beitrag: 20.12.2006, 01:07
  3. Programmspeicher von Atmega 128 erweitern
    Von Xairo im Forum AVR Hardwarethemen
    Antworten: 13
    Letzter Beitrag: 30.10.2006, 09:44
  4. Programmspeicher vergrößern
    Von CowZ im Forum AVR Hardwarethemen
    Antworten: 23
    Letzter Beitrag: 02.04.2006, 16:52
  5. ASURO - Programmspeicher voll?
    Von MSSputnik im Forum Asuro
    Antworten: 5
    Letzter Beitrag: 27.12.2005, 21:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •