Attiny1626 und EEPROM

#7394645
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
}
#7394716
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
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren