www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

C18 - napačno računanje
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Ned Nov 04, 2012 2:18 am    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galjotj
Član
Član



Pridružen-a: Pet 02 Nov 2012 15:08
Prispevkov: 231
Aktiv.: 1.50
Kraj: Zgornji Brnik

PrispevekObjavljeno: Ned Nov 04, 2012 10:30 pm    Naslov sporočila:   Odgovori s citatom

Kroko, se zahvaljujem za ideje in se hkrati opravičujem, če s "kakšno užgem mimo", ker sem namreč C-jevski samouk z ne ravno dolgim stažem.

Preučil sem .map datoteko in ugotovil, da sem USB Framework ponekod uporabil "malo po domače". Spremenljivke sem namreč vrinil na mesto, kjer je
#pragma udata USB_VARIABLES=0x500
in mi jih je tudi nametalo na zaščiteno usb5 območje.
Sedaj sem to uredil, kot naj bi bilo predvideno in mi sedaj udata spremenljivke nameče na 0x100+ in zanimivo udata1 na 0x060+, kar je sicer malo čudno...

Naslednjo nerodno rabo USB Framework-a pa ugotavljam, da sem si sam ustvaril "main.h" in vanj stlačil nekaj definicij ter tudi nekaj prototip definicij, nekaj pa tudi v .c in moram to "pošlihtat"-vrstni red utegne biti pomemben....

Ugotovil sem pa tudi, da če prevajam brez
#include <math.h>,
potem sistem sicer še vedno ne deluje stabilno, a precej bolje ????.

Glede dodatnih .c, .h: Ali so spremenljivke v napr. "spremenljivke.c" samodejno lahko uporabljene tudi v "main.c" ?

Hvala in lp

_________________
Pa sam programirat sem hotu!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Ned Nov 04, 2012 11:10 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galjotj
Član
Član



Pridružen-a: Pet 02 Nov 2012 15:08
Prispevkov: 231
Aktiv.: 1.50
Kraj: Zgornji Brnik

PrispevekObjavljeno: Pon Nov 05, 2012 9:28 pm    Naslov sporočila:   Odgovori s citatom

Tole s spremenljivkami .c, .h sem uporabil, a žal to ne reši problema z "zmedo v matematiki". Zelo poučno in ob priliki uporabno, a se v tem primeru hex praktično ne razlikuje od "udata1" verzije.

Uporabljam USB framework 2.9d (GenericHID) in MCHPUSB Bootloader in očitno ob večjem projektu tukaj "nekaj zaškripa".

Bom probal ubrati pristop "s kakšne druge strani"...

Vsakršni predlogi so dobrodošli

HVALA IN LP

_________________
Pa sam programirat sem hotu!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Tor Nov 06, 2012 12:43 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galjotj
Član
Član



Pridružen-a: Pet 02 Nov 2012 15:08
Prispevkov: 231
Aktiv.: 1.50
Kraj: Zgornji Brnik

PrispevekObjavljeno: Tor Nov 06, 2012 7:31 pm    Naslov sporočila:   Odgovori s citatom

Tole .krn pa ne poznam. Da slučajno ne misliš .lkr ?
_________________
Pa sam programirat sem hotu!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Tor Nov 06, 2012 9:05 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galjotj
Član
Član



Pridružen-a: Pet 02 Nov 2012 15:08
Prispevkov: 231
Aktiv.: 1.50
Kraj: Zgornji Brnik

PrispevekObjavljeno: Sre Nov 07, 2012 12:53 am    Naslov sporočila:   Odgovori s citatom

Ta je zraven zaradi Bootloaderja: rm18f4550 - MCHPUSB Bootload.lkr

Koda:

// FileName:     rm18f4550.lkr
// Sample linker command file for 18F4550 with Bootloader
//
//Change History:
// Rev   Date         Description
// 1.0   10/30/2004   Initial release

LIBPATH .

FILES c018i.o
FILES clib.lib
FILES p18F4550.lib

CODEPAGE   NAME=boot       START=0x0            END=0x7FF          PROTECTED
CODEPAGE   NAME=vectors    START=0x800          END=0x0x829        PROTECTED
CODEPAGE   NAME=page       START=0x82A          END=0x7FFF
CODEPAGE   NAME=idlocs     START=0x200000       END=0x200007       PROTECTED
CODEPAGE   NAME=config     START=0x300000       END=0x30000D       PROTECTED
CODEPAGE   NAME=devid      START=0x3FFFFE       END=0x3FFFFF       PROTECTED
CODEPAGE   NAME=eedata     START=0xF00000       END=0xF000FF       PROTECTED

ACCESSBANK NAME=accessram  START=0x0            END=0x5F
DATABANK   NAME=gpr0       START=0x60           END=0xFF
DATABANK   NAME=gpr1       START=0x100          END=0x1FF
DATABANK   NAME=gpr2       START=0x200          END=0x2FF
DATABANK   NAME=gpr3       START=0x300          END=0x3FF
DATABANK   NAME=usb4       START=0x400          END=0x4FF          PROTECTED
DATABANK   NAME=usb5       START=0x500          END=0x5FF          PROTECTED
DATABANK   NAME=usb6       START=0x600          END=0x6FF          PROTECTED
DATABANK   NAME=usb7       START=0x700          END=0x7FF          PROTECTED
ACCESSBANK NAME=accesssfr  START=0xF60          END=0xFFF          PROTECTED

SECTION    NAME=CONFIG     ROM=config

STACK SIZE=0x100 RAM=gpr3

SECTION      NAME=USB_VARS   RAM=usb4



Sicer sem nekje prebral, da je že precej "brez zveze" kar se tiče USB-ja (usb4-7), saj se resnično večina usb spremenljivk "nameče" v free ram, namesto v predviden PROTECTED.

Zato sem z #pragma udata usb7=0x700 in #pragma udata usb6=0x600 tja shranil svoje spremenljivke in je vse 100% v svojih bankah.

Skoraj prepričan sem, da ni problem v spremenljivkah in tudi ne sw stacku, ki sem ga tudi že povečal na dve banki, pa ni nič spremenilo.

Moram iti testirat po verzijah nazaj in tako probat najti vzrok.

LP

_________________
Pa sam programirat sem hotu!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Sre Nov 07, 2012 1:29 am    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galjotj
Član
Član



Pridružen-a: Pet 02 Nov 2012 15:08
Prispevkov: 231
Aktiv.: 1.50
Kraj: Zgornji Brnik

PrispevekObjavljeno: Sre Nov 07, 2012 11:32 pm    Naslov sporočila:   Odgovori s citatom

Uporabljen je originalen "rm18f4550 - MCHPUSB Bootload.lkr" ter le z "#pragma udata udata1".
Matematične funkcije so v neuporabljeni proceduri.
Prilagam to .map datoteko.

LP



USB_HID_2.7_RC_PPM_Autopilot.map.txt
 Opis:
USB_HID_2.7_RC_PPM_Autopilot.map

Download
 Ime datoteke:  USB_HID_2.7_RC_PPM_Autopilot.map.txt
 Velikost datoteke:  227.51 KB
 Downloadano:  2 krat


_________________
Pa sam programirat sem hotu!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Neznanec
Neznanec



Pridružen-a: Pet 01 Okt 2004 1:17
Prispevkov: 1
Aktiv.: 0.00

PrispevekObjavljeno: Čet Nov 08, 2012 1:01 am    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galjotj
Član
Član



Pridružen-a: Pet 02 Nov 2012 15:08
Prispevkov: 231
Aktiv.: 1.50
Kraj: Zgornji Brnik

PrispevekObjavljeno: Čet Nov 08, 2012 7:08 pm    Naslov sporočila:   Odgovori s citatom

Sem tudi sam že opazil, a je "active_protocol" dolg le 1byte:

Koda:
/** VARIABLES ******************************************************/
#if defined(COMPILER_MPLAB_C18)
   #pragma udata
#endif

BYTE idle_rate;
BYTE active_protocol;   // [0] Boot Protocol [1] Report Protocol


Zadevo moram še bolj "razšraufati"...

Sedaj sem nekako ugotovil, da verjetno USB in I2C delujeta brez večjih problemov, saj gredo na PC pravilno podatki iz merilnika pospeška, kompasa, barometra ter ADC-jev.
Težava je večinoma v girskopu, ki se mu čisto "utrga".
Le-ta bere podatke (42bytov) preko I2C iz 1k velikega fifo registra, kar pa omogoča v gyro prednaložen 2k dolg program.

Moram preveriti naslednje verjetnosti za težave:
- ali se vpis programa v gyro izvrši pravilno
- ali kaj ovira branje iz fifo registra (ne sme priti do over ali under-flow-a)

Kot že rečeno, težave povzroči prisotnost matematičnih float (math.c) funkcij, pa četudi se le nahajajo v neuporabljeni proceduri.

Sumil sem tudi, da je zmanjkalo programskega spomina, a mi tudi z upoštevanjem Bootloaderja, ostane skoraj 2k.

Javim ko kaj najdem...

HVALA IN LP

_________________
Pa sam programirat sem hotu!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galjotj
Član
Član



Pridružen-a: Pet 02 Nov 2012 15:08
Prispevkov: 231
Aktiv.: 1.50
Kraj: Zgornji Brnik

PrispevekObjavljeno: Ned Nov 11, 2012 6:58 pm    Naslov sporočila:   Odgovori s citatom

Vse kaže, da je kriva počasnost float matematike, kar razumem, pa vendar mi ni jasno, da uposni uC tudi, če funkcije niso uporabljene - so le prisotne v nekativni proceduri.

Zadevo je "vrnilo v igro" pospešitev U2C vodila na največjo hitrost, pa tudi odjem iz FIFO baferja sem dodelal, da ne prihaja do napak zaradi upočasnitve.

Zaradi "klobasaste" formule:
Koda:
Yt = mx*sin(amy)*sin(amx)+my*cos(amy)-mz*sin(amy)*cos(amx);

pa mi je po nekaj sekundah zaštekal uC. Sad

Rešil sem to tako, da sem formulo razbil na tri dele in deluje BP. Very Happy

_________________
Pa sam programirat sem hotu!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group