Todas as Discussões Marcadas 'execução' - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T09:52:22Zhttps://labdegaragem.com/forum/topic/listForTag?tag=execu%C3%A7%C3%A3o&feed=yes&xn_auth=noEscrevendo na flash em tempo de execuçãotag:labdegaragem.com,2012-06-15:6223006:Topic:1464662012-06-15T22:40:23.929ZMarcelo Rodrigueshttps://labdegaragem.com/profile/MarceloRodrigues
<p>Olá pessoal,</p>
<p></p>
<p>Alguém sabe como escrever na flash do ATmega328 em tempo de execução? Eu consigo gravar durante o carregamento do programa usando PROGMEM, depois acesso normalmente usando o pgm_read_byte. Mas como eu altero essa memória gravada em tempo de execução?</p>
<p></p>
<p>digamos assim...</p>
<p></p>
<p>PROGMEM prog_char dados[3] = { 'a', 'b' ,'c' };</p>
<p>void setup(){<br></br> Serial.begin(9600);<br></br> Serial.write("valores antigos = ");…<br></br></p>
<p>Olá pessoal,</p>
<p></p>
<p>Alguém sabe como escrever na flash do ATmega328 em tempo de execução? Eu consigo gravar durante o carregamento do programa usando PROGMEM, depois acesso normalmente usando o pgm_read_byte. Mas como eu altero essa memória gravada em tempo de execução?</p>
<p></p>
<p>digamos assim...</p>
<p></p>
<p>PROGMEM prog_char dados[3] = { 'a', 'b' ,'c' };</p>
<p>void setup(){<br/> Serial.begin(9600);<br/> Serial.write("valores antigos = ");<br/> Serial.write(pgm_read_byte(dados + 0));<br/> Serial.write(pgm_read_byte(dados + 1));<br/> Serial.write(pgm_read_byte(dados + 2));<br/>}</p>
<p>void loop(){<br/> // como mudar valor dados[0] para 'd'?<br/> // como mudar valor dados[1] para 'e'?<br/> // como mudar valor dados[2] para 'f'?<br/> Serial.write("valores novos = ");<br/> Serial.write(pgm_read_byte_near(dados + 0));<br/> Serial.write(pgm_read_byte_near(dados + 1));<br/> Serial.write(pgm_read_byte_near(dados + 2));<br/> <br/> while(1);<br/>}</p>
<p></p>
<p>Valeu!!!</p>
<p></p>