Forum: Mikrocontroller und Digitale Elektronik Attiny1626 und EEPROM


von Felice D. (flexbex)


Lesenswert?

Hi ich versuche im MPLAB x und auch Microchipstudio im simulator den 
EEPROM/USER_ROW zu programmieren. Leider sehe ich nirgends einen schreib 
vorgang im memory. Ich wollte es erst im simulator testen um nichts im 
"echten" attiny zu überschreiben, da er bereits in die Schaltung 
eingebaut ist. Das ist der code den ich bisher benutzt habe
1
#include <avr/cpufunc.h> /* Required header file */
2
#include <avr/eeprom.h>
3
#include <avr/io.h>
4
5
volatile uint8_t a,b;
6
7
#define USR_ADDR ((uint8_t *)0x1300-0x1400)
8
#define EEPR_ADDR ((uint8_t *)0)
9
int main(void) {
10
  _NOP();
11
  while(NVMCTRL.STATUS&NVMCTRL_EEBUSY_bm)
12
  eeprom_write_byte(EEPR_ADDR, 3);    //EEPROM
13
    while(NVMCTRL.STATUS&NVMCTRL_EEBUSY_bm)
14
  eeprom_write_byte(USR_ADDR , 3);    //USER_ROW
15
  while(NVMCTRL.STATUS & NVMCTRL_EEBUSY_bm);
16
  a= eeprom_read_byte(0);
17
    b=USERROW.USERROW0;
18
  _NOP();
19
  while(1);
20
            
21
  return 0;
22
}
und diesen hier
1
#include <avr/cpufunc.h> /* Required header file */
2
#include <avr/eeprom.h>
3
#include <avr/io.h>
4
#include "bitoperation.h"
5
6
volatile int b;
7
int main(void) {
8
    _NOP();
9
    while(NVMCTRL.STATUS&NVMCTRL_EEBUSY_bm);
10
    
11
    NVMCTRL_ADDR=0x1300;
12
    NVMCTRL_DATA=15;
13
    BITMASK_SET(NVMCTRL_CTRLA,NVMCTRL_CMD_PAGEERASEWRITE_gc); //ERWP ERASE and write
14
    _NOP();
15
    _NOP();
16
    _NOP();
17
    while(NVMCTRL.STATUS & NVMCTRL_EEBUSY_bm);
18
    b=USERROW.USERROW0;
19
    _NOP();
20
    while (1);
21
    return 0;
22
}

von S. L. (sldt)


Lesenswert?

Dies hier läuft auf dem (sehr ähnlichen) ATmega4809:
1
#include <avr/io.h>
2
3
int main(void)
4
{
5
  uint8_t *ptr = (uint8_t*)0x1403;  //innerhalb EEPROM-Bereich
6
  *ptr = 0x45;
7
  _PROTECTED_WRITE_SPM(NVMCTRL.CTRLA, NVMCTRL_CMD_PAGEERASEWRITE_gc);
8
  while(1)
9
  {
10
  }
11
}

von Andras H. (kyrk)


Lesenswert?

Wird der Eeprom auch richtig in MPLAB X simuliert? Ich glaube das könnte 
vielleicht nicht unterstützt sein. Versuche das lieber auf dem Target 
selbst.

von S. L. (sldt)


Angehängte Dateien:

Lesenswert?

...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.