Hallo Zusammen,
zum neuen Jahr erstmal alles Gute; vor allem Gesundheit
Mein Problem ist wie folgt: ich versuche bei einem Mega 328P das EEPROM zu lesen und zu beschreiben. Ich habe sowas vorher noch nie gemacht. (programmiert)
Also erstmal Google befragt und das Forum hier, und die diversen Bücher, die man so hat. Einiges ist mir klar geworden, aber längst nicht alles.
Ich bin mal vorsichtig mit einem keinen Prgrämmchen angefangen, bei dem ich das Lesen + schreiben von aussen über Taten steuern kann. Ich möchte gerne die Werte auf die Positionen 1 , 2 , 3 ,4 schreiben Wenn ich 1 auf Pos. 1 oder auf Pos 2 schreibe ist das Erg.beim lesen was ganz anderes, aber immer das Gleiche.
Frage ist auch : wo findet man ein gutes / aktuelles Bascom Tutorial zu dem Thema.
Damit ich ich die Materie reinfinde, wer kann mir bitte mal helfen. Mein Programm ( mit allen auskommentierten Zeilen) hab ich mal angehängt.
Danke + Gruss
Theo
Alles anzeigen
zum neuen Jahr erstmal alles Gute; vor allem Gesundheit
Mein Problem ist wie folgt: ich versuche bei einem Mega 328P das EEPROM zu lesen und zu beschreiben. Ich habe sowas vorher noch nie gemacht. (programmiert)
Also erstmal Google befragt und das Forum hier, und die diversen Bücher, die man so hat. Einiges ist mir klar geworden, aber längst nicht alles.
Ich bin mal vorsichtig mit einem keinen Prgrämmchen angefangen, bei dem ich das Lesen + schreiben von aussen über Taten steuern kann. Ich möchte gerne die Werte auf die Positionen 1 , 2 , 3 ,4 schreiben Wenn ich 1 auf Pos. 1 oder auf Pos 2 schreibe ist das Erg.beim lesen was ganz anderes, aber immer das Gleiche.
Frage ist auch : wo findet man ein gutes / aktuelles Bascom Tutorial zu dem Thema.
Damit ich ich die Materie reinfinde, wer kann mir bitte mal helfen. Mein Programm ( mit allen auskommentierten Zeilen) hab ich mal angehängt.
Danke + Gruss
Theo
Quellcode
- Schreiben und lesen bei EEPROM (Version 1)
- MCU : Mega 328P im Dil Gehäuse
- Clock : 16 Mhz
- Bascom Version : 2.0.8.1
- erstellt am :15.01.19
- Der hier verwendete Mega 328P hat lt. Datenblatt 1 KB Speicher = 1024 Bit =512 Byte
- Version 0
- Dieses Programm liest die Pos 1 im EEPROM; der Wert Ist 255 ; weil : das Eprom wurde noch nie beschrieben
- an diesem Plaz
- Version 1
- Schreiben auf Pos 1 mit "1" e5rgibt beim lesen "96" ; da stimmt was nicht
- ')
- $regfile = "m328pdef.dat" ' Prozessor AVR Mega 328P
- $crystal = 16000000 '16Mhz ext. Quartz
- $swstack = 40
- $hwstack = 40
- $framesize = 60
- $eeprom
- Declare Sub Eeprom_schreiben()
- Declare Sub Eeprom_lesen()
- Config Pinc.5 = Input
- Taster_schreiben Alias Pinc.5
- Portc.5 = 1
- Config Pinc.4 = Input
- Taster_lesen Alias Pinc.4
- Portc.4 = 1
- Dim Array_werte(5) As Byte
- Array_werte(1) = 10
- Array_werte(2) = 15
- Array_werte(3) = 20
- Array_werte(4) = 25
- Array_werte(5) = 30
- Dim Wert As Byte
- Dim B As Byte
- Dim Zaehl_lesen As Byte , Zaehl_schreiben As Byte
- Zaehl_lesen = 0 : Zaehl_schreiben = 0
- Dim Durchl_lesen As Byte , Durchl_schreiben As Byte
- Durchl_lesen = 0 : Durchl_schreiben = 0
- Dim E_wert_schreiben As Eram Byte
- Dim E_wert_lesen As Eram Byte
- Dim A As Eram Byte
- Dim Pos As Byte
- Pos = 2
- Do
- Debounce Taster_schreiben , 0 , Schreiben , Sub
- Debounce Taster_lesen , 0 , Lesen , Sub
- If Zaehl_lesen = 1 Then
- Eeprom_lesen
- Zaehl_lesen = 0
- End If
- If Zaehl_schreiben = 1 Then
- Eeprom_schreiben
- End If
- Loop
- End
- Sub Eeprom_lesen()
- 'Readeeprom E_wert_lesen , Pos
- 'Pos = 1
- 'Readeeprom E_wert_lesen , Pos
- 'Readeeprom A , Pos
- Readeeprom B , Pos 'hier kann man offensichtlich eine ganz normale Byte - Variable nehmen
- Wert = B
- Print "Platz " ; Pos ; " im Eeprom: " ; Wert
- End Sub
- Sub Eeprom_schreiben()
- E_wert_schreiben = 1
- Writeeeprom E_wert_schreiben , Pos
- Print "habe Platz " ; Pos ; " beschrieben"
- Zaehl_schreiben = 0
- End Sub
- Schreiben:
- Incr Zaehl_schreiben
- Return
- Lesen:
- Incr Zaehl_lesen
- Return