WinAVR i symulacja w AVR Studio
Masz problem? Zapytaj na forum elektroda.pl
From: "tomm" <tmroz1_at_nospam_poczta.gazeta.pl>
Subject: WinAVR i symulacja w AVR Studio
Date: Thu, 2 Jun 2005 12:22:05 +0200
witam,
chce przekopiowac zadeklarowany w programie 'string'
char *ramka =
"GPRMC,002310,A,5141.535,N,01735.096,E,001.0,090.0,091299,002.7,E*7C";
do innej zmienne
unsigned char tmptext[100];
i wszystko kopiuje ladnie ale w pewnym momencie zamist odpowiednich znakow
pojawiaja sie znaki o kodzie 10 ( symulacja w AVR Studio 4.11 )
zupelnie nie wiem co moze byc zle (choc przyznaje ze programowac w C pod
AVR
dopiero zaczynam)
prosze wiec o pomoc, ponizej caly programik
pozdrawiam,
Tomek
------------------------------------------------------------------
#include <inttypes.h>
#include <string.h>
#include <avr/io.h>
#define F_CPU 1000000UL // 1 MHz
unsigned char tmptext[100];
unsigned char gpsline[100];
unsigned char posInRMC = 0;
char *ramka =
"GPRMC,002310,A,5141.535,N,01735.096,E,001.0,090.0,091299,002.7,E*7C";
void readfromGPS(char onechar) {
tmptext[posInRMC] = onechar;
posInRMC++;
}
void test1() {
unsigned char text_len = 80;
for(unsigned char ia = 0; ia < text_len; ia++) {
readfromGPS(ramka[ia]);
}
}
int main (void) {
test1();
return (0);
}
-----------------------------
u mnie blad jest na bajtach 1A, 2C, 3B
From: Marcin Stanisz <mstanisz_at_nospam_bzdury.poczta.onet.pl>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Fri, 03 Jun 2005 22:04:00 +0200
On Thu, 02 Jun 2005 12:22:05 +0200, tomm wrote:
chce przekopiowac zadeklarowany w programie 'string'
char *ramka =
"GPRMC,002310,A,5141.535,N,01735.096,E,001.0,090.0,091299,002.7,E*7C";
Ten 'string' jest niezmienialny? To może go do pamięci programu
przenieść? (Hint: PROGMEM, jeśli to avr-gcc)
do innej zmienne
unsigned char tmptext[100];
Duże te tablice. Nie przekraczasz aby dostępnej pamięci RAM?
Pozdrawiam
--
Marcin Stanisz
"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"
From: "tomm" <tmroz1_at_nospam_poczta.gazeta.pl>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Sat, 4 Jun 2005 08:34:11 +0200
Użytkownik "Marcin Stanisz" <mstanisz_at_nospam_bzdury.poczta.onet.pl> napisał w
wiadomości news:pan.2005.06.03.20.04.00.839774_at_nospam_bzdury.poczta.onet.pl...
On Thu, 02 Jun 2005 12:22:05 +0200, tomm wrote:
chce przekopiowac zadeklarowany w programie 'string'
char *ramka =
"GPRMC,002310,A,5141.535,N,01735.096,E,001.0,090.0,091299,002.7,E*7C";
Ten 'string' jest niezmienialny? To może go do pamięci programu
przenieść? (Hint: PROGMEM, jeśli to avr-gcc)
do innej zmienne
unsigned char tmptext[100];
Duże te tablice. Nie przekraczasz aby dostępnej pamięci RAM?
dzieki za odpowiedz,
ten string sluzy tylko czasowo do symulacji wejsca danych RS
pamieci nie przekraczam chyba bo to wszak ATMega128
a tymczasam zamiast posuwac sie w pisaniu programu stoje w miejscu
jak bedzie czas to po prostu sprobuje zaprogramowac sowja ATMege
i zobaczyc czy wtedy bedzie dzialac, czy to moze wina symulatora
Tomek
From: =?ISO-8859-2?Q?Mi=B3osz_K=B3osowicz?= <news_at_nospam_miklobit.WYTNIJTO.com>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Sat, 04 Jun 2005 13:02:38 +0200
tomm napisał(a):
a tymczasam zamiast posuwac sie w pisaniu programu stoje w miejscu
jak bedzie czas to po prostu sprobuje zaprogramowac sowja ATMege
i zobaczyc czy wtedy bedzie dzialac, czy to moze wina symulatora
Jak masz ATmeg'e to nie musisz się męczyć z symulatorem, tylko podłącz
ja przez JTAG'a i będziesz miał to samo, tylko w żywym układzie.
--
Miłosz Kłosowicz
-------------------------------------
http://www.miklobit.com
[ AVR: narzędzia,moduły prototypowe ]
-------------------------------------
From: "tomm" <tmroz1_at_nospam_poczta.gazeta.pl>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Sat, 4 Jun 2005 20:58:59 +0200
Jak masz ATmeg'e to nie musisz się męczyć z symulatorem, tylko podłącz ja
przez JTAG'a i będziesz miał to samo, tylko w żywym układzie.
chyba zaczne tak w koncu robic, tylko najpierw JTAG musze kupic
dzieki za pomoc,
poki co jednak dreczy mnie dlaczego tak sie dzieje, niby powinno dzialac ok
a tutaj takie przygody i to w tak prostym fragmencie kodu
Tomek
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Sat, 04 Jun 2005 22:08:53 +0200
On Sat, 4 Jun 2005 20:58:59 +0200, tomm wrote:
poki co jednak dreczy mnie dlaczego tak sie dzieje, niby powinno dzialac ok
a tutaj takie przygody i to w tak prostym fragmencie kodu
A zajrzyj na poziom assemblera.
J.
From: "tomm" <tmroz1_at_nospam_poczta.gazeta.pl>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Sat, 4 Jun 2005 22:54:35 +0200
Uzytkownik "J.F." <jfox_xnospamx_at_nospam_poczta.onet.pl> napisal w wiadomosci
news:p6v3a1pkc85jd0jhdqombspq1c32if5gf8_at_nospam_4ax.com...
On Sat, 4 Jun 2005 20:58:59 +0200, tomm wrote:
poki co jednak dreczy mnie dlaczego tak sie dzieje, niby powinno dzialac
ok
a tutaj takie przygody i to w tak prostym fragmencie kodu
A zajrzyj na poziom assemblera.
no fakt, nie pomyslalem, w pon wiec zobacze
Tomek
From: Marcin Stanisz <mstanisz_at_nospam_bzdury.poczta.onet.pl>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Sat, 04 Jun 2005 22:55:26 +0200
On Thu, 02 Jun 2005 12:22:05 +0200, tomm wrote:
char *ramka =
"GPRMC,002310,A,5141.535,N,01735.096,E,001.0,090.0,091299,002.7,E*7C";
To ma coś koło 68 znaków ;)
void test1() {
unsigned char text_len = 80;
for(unsigned char ia = 0; ia < text_len; ia++) {
readfromGPS(ramka[ia]);
}
}
A tu każesz mu odczytać 80. Hmm. Ale czemu w środku się wali?
Pozdrawiam
--
Marcin Stanisz
"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"
From: "tomm" <tmroz1_at_nospam_poczta.gazeta.pl>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Sun, 5 Jun 2005 15:22:37 +0200
To ma coś koło 68 znaków ;)
A tu każesz mu odczytać 80. Hmm. Ale czemu w środku się wali?
wiem, wiem, ale problem wlasnie ze juz po kilkunastu bajtach zaczynaja sie
problemy i sa przeklamania
Tomek
From: "tomm" <tmroz1_at_nospam_poczta.gazeta.pl>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Thu, 9 Jun 2005 09:44:12 +0200
cos tu mi nadal nie gra, co prawda w asemblera nie zagladalem zbytnio,
ale zrobilem prosta rzecz i w AVR studio podgladlem co jest w pamieciach
w tym celu w kodzie programu zrobilem tak:
#define FLASHDATA _attribute_ ((section (".flashdata")))
"GPRMC,002310,A,5141.535,N,01735.096,E,001.0,090.0,091299,002.7,E*7C";
static unsigned char *ramka2 =
"GPRMC,002310,A,5141.535,N,01735.096,E,001.0,090.0,091299,002.7,E*7C";
i co sie okazuje,
w pamieci programu wszystko jest OK,
natomiast w pamiec Extended sa wlasnie niektore bajty pomylone
moglby moze ktos ten kod co dalem w pierwszym poscie wyprobowac u siebie ??
pozdrawiam,
Tomek
From: "tomm" <tmroz1_at_nospam_poczta.gazeta.pl>
Subject: Re: WinAVR i symulacja w AVR Studio
Date: Thu, 9 Jun 2005 10:45:43 +0200
JUZ SIE wyjasnilo wszystko,
jak to zwykle bywa glupi blad byl,
kompilowalem pod 8535 a do debug'u w AVR Studio
wybralem 128
w koncu kod juz tak skrocilem, ze blad byl zbyt ewidentny
i zaczelame szukac przyczyn gdzies indziej no i znalazlem
pozdrawiam,
Tomek