Witam
mam problem, zapisuję sobie do eeprom wartości temperatury. Potrafię odczytać plik eep za pomocą programatora USB oraz AVRdude ... tylko teraz jak sprawdzić co mi się w tym pliku zapisało ... najlepiej jak to przerobić na wartości przyjemne dla oka
stawiam browara za pomoc
Odczyt eeprom atmegi 8 do komputera
Dobra teraz przeczytaj to co napisałeś co my z tego mamy wiedzieć ?
Napisz jakiego języka używasz do tych procków.
Jakiego typu jest zmienna która zapisujesz w pamięci.
I czy znasz adresy pod którymi zapisujesz dane w eeprom.
czy zapisujesz jeszcze jakieś inne dane do pamięci.
Na 99,9% jestem pewien ze nie jesteś autorem kodu który zapisuje do eeprom.
Napisz jakiego języka używasz do tych procków.
Jakiego typu jest zmienna która zapisujesz w pamięci.
I czy znasz adresy pod którymi zapisujesz dane w eeprom.
czy zapisujesz jeszcze jakieś inne dane do pamięci.
Na 99,9% jestem pewien ze nie jesteś autorem kodu który zapisuje do eeprom.
Witam
Odczytuję wartość temperatury z czujnika DS18B20 i chciałbym ją zapisać w pierwszej komórce pamięci.
Ma to być rejestrator temperatury. Wiem, że teraz to tak nie działa, pierw chcę rozwiązać problem jednego zapisu do jednej komórki a później dodam pętle i inkrementację adresu.
Autorem odczytu nie jestem ja, ale program działa. Zapis dorobić chciałem samemu i korzystałem z książki AVR&ARM7 - programowanie mikrokontrolerów dla każdego. Jednak tam zapis do pamięci dla języka C jest ledwo liźnięty :/
Pamiętam o tym, że eeprom może być zapisany w ograniczonych ilościach cykli. To jest narazie model szkoleniowy i odpowiednie poprawki w kodzie prowadzę później.
Nie wiem, czy dane są zapisane poprawnie bo nie mam ich jak sprawdzić. Chciałbym mieć dostęp do nich od strony komputera. Programatorem mogę odczytać plik eep. z atmegi
Odczytuję wartość temperatury z czujnika DS18B20 i chciałbym ją zapisać w pierwszej komórce pamięci.
Ma to być rejestrator temperatury. Wiem, że teraz to tak nie działa, pierw chcę rozwiązać problem jednego zapisu do jednej komórki a później dodam pętle i inkrementację adresu.
Kod: Zaznacz cały
#include <stdio.h>
#include <avr/io.h>
#include <util/delay.h>
#include "hd44780.h"
#include "ds18b20.h"
#include <avr/eeprom.h>
char str[17]=" Termometr3 ";
int main(void)
{
double temp;
unsigned char ds18b20_pad[9];
lcd_init();
LCD_DISPLAY(LCDDISPLAY);
LCD_CLEAR;
LCD_LOCATE(0,0);
lcd_puts(str);
while(1)
{
if(ds18b20_ConvertT())
{
_delay_ms(750);
ds18b20_Read(ds18b20_pad);
temp = ((ds18b20_pad[1] << 8) + ds18b20_pad[0]) / 16.0 ;
eeprom_write_word( (uint8_t *)0x1, temp);
_delay_ms(200);
sprintf(str,"%4.1f\xdf""C", temp);
LCD_LOCATE(5,1);
lcd_puts(str);
}
}
}Pamiętam o tym, że eeprom może być zapisany w ograniczonych ilościach cykli. To jest narazie model szkoleniowy i odpowiednie poprawki w kodzie prowadzę później.
Nie wiem, czy dane są zapisane poprawnie bo nie mam ich jak sprawdzić. Chciałbym mieć dostęp do nich od strony komputera. Programatorem mogę odczytać plik eep. z atmegi