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 
Sponsored by SiOL

Začetniški problem v C-ju pri AVR-ju
Pojdi na stran Prejšnja  1, 2, 3 ... , 24, 25, 26  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
rafaellsi
Član
Član



Pridružen-a: Ned 11 Sep 2011 18:54
Prispevkov: 459
Aktiv.: 4.65
Kraj: Radovljica

PrispevekObjavljeno: Pet Avg 26, 2016 2:26 pm    Naslov sporočila:   Odgovori s citatom

Da ti mogoče ne primankuje spomina?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3012
Aktiv.: 21.06
Kraj: Koroška Bela

PrispevekObjavljeno: Pet Avg 26, 2016 9:06 pm    Naslov sporočila:   Odgovori s citatom

Pomislil sem tudi na to.... Mego 168 imam (po avr studiu) zapolnjeno do 14kB spomina (od 16kB) in max 950B (od 1kB) spremenljivk... Po AVR studiu pri prevodu oboje manj kot 100% Think

Imam še enega 328... Bom v ponedeljek poskusil še s tem, če bo kaj bolje.

Res pa je, da še nikdar taaako obsežnega programa in toliko spremenljivk še nisem skupaj sklamfal....
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Domenius
Član
Član



Pridružen-a: Sre 30 Nov 2005 14:15
Prispevkov: 1188
Aktiv.: 7.07
Kraj: Trbovlje, LJ

PrispevekObjavljeno: Ned Avg 28, 2016 10:50 pm    Naslov sporočila:   Odgovori s citatom

lojzek je napisal/a:
...in max 950B (od 1kB) spremenljivk...

V RAM se ne shranjujejo samo spremenljivke, pozabil si na stack.

_________________
It's electric!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3012
Aktiv.: 21.06
Kraj: Koroška Bela

PrispevekObjavljeno: Pon Avg 29, 2016 8:15 am    Naslov sporočila:   Odgovori s citatom

Če bi uporabil 328, bi moral program predelat.... Samo s prevodom programa zanjo ne deluje.

Bom moral ostati pri 168...

@Domenius: Ali lahko laično razložiš tvoj post...? Think Ali se poleg tega, kar AVR Studio napiše, v RAM naloži še nekaj?


Nazadnje urejal/a lojzek Pon Avg 29, 2016 8:20 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 854
Aktiv.: 9.48
Kraj: Črnomelj

PrispevekObjavljeno: Pon Avg 29, 2016 8:17 am    Naslov sporočila:   Odgovori s citatom

RAM je uporabljen za globalne in lokalne spremenljivke.

Globalne spremenljivke so tiste, ki so deklarirane izven funkcij, medtem, ko so lokalne tiste, ki so znotraj njih deklarirane.

Te spremenljivke (lokalne) se shranjujejo na "Stack" (slovensko "Sklad"), ki je del RAM-a, kar ti AVR studio ni štel v izračunu ker za to potrebuje izračunat celoten call stack upoštevajoč interrupt rutine v vsakem momentu.

Lahko se je zgodilo, da si šel s stackom izven memory-ja RAM-a in je vse začelo delovati po svoje.

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3012
Aktiv.: 21.06
Kraj: Koroška Bela

PrispevekObjavljeno: Pon Avg 29, 2016 12:22 pm    Naslov sporočila:   Odgovori s citatom

tilz0R je napisal/a:

Te spremenljivke (lokalne) se shranjujejo na "Stack" (slovensko "Sklad"), ki je del RAM-a, kar ti AVR studio ni štel v izračunu ker za to potrebuje izračunat celoten call stack upoštevajoč interrupt rutine v vsakem momentu.


To zna biti tisto....

Prevajalnik mi izvrže naslednje....
Koda:

Device: atmega168p

Program:   13596 bytes (83.0% Full)
(.text + .data + .bootloader)

Data:        964 bytes (94.1% Full)
(.data + .bss + .noinit)


Build succeeded with 106 Warnings...


Tisti Warningi so predvsem pri izpisu tekstov... malce zbrke med unsigned in signed spremenljivkami - dosedaj še niso motili izvajanja programa.

Če torej nekaj spremenljivk (te v zgornjih postih omenjene tekstualne in zato velike okoli 50 Bytov) zaradi izvajanja programa mora še nekam shranjevat, pa torej lahko del že prej shranjenih spremenljivk "povozi" Think ?

Torej je bolje, da te največje (besedila) reorganiziram in definiram globalno?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 854
Aktiv.: 9.48
Kraj: Črnomelj

PrispevekObjavljeno: Pon Avg 29, 2016 12:28 pm    Naslov sporočila:   Odgovori s citatom

Gre nekako tako.

Imaš na voljo 1k rama in tvoje spremenljivke globalne kurijo 950B RAM-a.
Torej imaš za stack na voljo še recipiši 74Bytov.

Vsak klic funkcije znotraj druge funkcije dodatno obremenjuje stack. Če ga zasedeš, torej celih 74Bytov pushneš na stack (na stack gredo lokalne spremenljivke, delovni registri, pa še kaj).

Ko pushneš na stack zadeve se povečuje zasedenost. Če stack prekoračiš, si v območju kjer ni RAM-a (v ARM Cortex bi te čakal HardFault error) in ko nazaj pop-neš dol imaš neznane vrednosti na stacku, ki je izven RAM-a.

Po domače bi lahko rekli, da se povozi RAM.

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net


Nazadnje urejal/a tilz0R Pon Avg 29, 2016 1:18 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3012
Aktiv.: 21.06
Kraj: Koroška Bela

PrispevekObjavljeno: Pon Avg 29, 2016 1:16 pm    Naslov sporočila:   Odgovori s citatom

Hvala za lepo domačo razlago.

Torej bom program primoran optimirati predvsem v smislu spremenljivk in njih uporabe. Na žalost sem program že skoraj v celoti spisal, tako da bo dela malo več. Bom vedel za naslednjič.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
integrerc
Član
Član



Pridružen-a: Sob 23 Sep 2006 14:50
Prispevkov: 399
Aktiv.: 2.51
Kraj: Novo mesto

PrispevekObjavljeno: Čet Nov 24, 2016 7:59 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljeni!
Prešel na AVR studio 6, WinAVR.
Težava, ki jo nikakor ne morem rešiti je sledeča.....
Ko hočem uporabiti v svojem projektu npr. lcd knjižnico (ki jo dodam v projekt), mi ob prevajanju javi napak.... lcd_lib.h: no such file or directory
Knjižnica seveda obstaja v failu in bi morala delovati, je tudi zdefinirana v samem programu (#define <lcd_lib.h>).
Prosim za pomoč, kaj delam narobe?
LP!

_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1025
Aktiv.: 6.10

PrispevekObjavljeno: Čet Nov 24, 2016 9:50 pm    Naslov sporočila:   Odgovori s citatom

Namesto define napiši include in namesto<> daj "", če je header v isti mapi kot ostale datoteke projekta.
_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
integrerc
Član
Član



Pridružen-a: Sob 23 Sep 2006 14:50
Prispevkov: 399
Aktiv.: 2.51
Kraj: Novo mesto

PrispevekObjavljeno: Čet Nov 24, 2016 9:54 pm    Naslov sporočila:   Odgovori s citatom

Ja, ja saj sem dal #include in z narekovaji sem poizkusil, pa je isto...
_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jan
Član
Član



Pridružen-a: Sob 10 Jun 2006 14:19
Prispevkov: 286
Aktiv.: 1.76
Kraj: Dolenjska

PrispevekObjavljeno: Čet Nov 24, 2016 10:01 pm    Naslov sporočila:   Odgovori s citatom

Imaš mogoče kakšne presledke v imenu poti projekta?
Če jih imaš, prestavi projektno mapo direktno na C:\ in poskusi, če bo isto.

Jan
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
integrerc
Član
Član



Pridružen-a: Sob 23 Sep 2006 14:50
Prispevkov: 399
Aktiv.: 2.51
Kraj: Novo mesto

PrispevekObjavljeno: Čet Nov 24, 2016 11:48 pm    Naslov sporočila:   Odgovori s citatom

Ne nimam presledke v imenu poti , poskusil sem dat projekt direktno na C: in je ista "figa"....očitno delam nekaj narobe...v solution explorerju dodam z ADD knjižnjico, .c in .h, potem pa izberem "build" in mi pokaže zgoraj omenjen error.

Error 1 lcd_lib.h: No such file or directory C:\Users\Andrej\Documents\Atmel Studio\vajeatmelstudio\vajadelamojstra\vajadelamojstra\lcd.lib.c

_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Domenius
Član
Član



Pridružen-a: Sre 30 Nov 2005 14:15
Prispevkov: 1188
Aktiv.: 7.07
Kraj: Trbovlje, LJ

PrispevekObjavljeno: Pet Nov 25, 2016 9:23 am    Naslov sporočila:   Odgovori s citatom

Pot (path) imaš kar dolgo, mogoče bi jo bilo dobro skrajšati - sem že imel probleme. Tudi šumnike in presledke odsvetujem - vem da jih nimaš, govorim na splošno. Pa napisal si lcd_lib.c, tam kjer imaš pot pa imaš napisano lcd.lib.c. Se pravi da bi bilo pravilno #include "lcd.lib.h".
_________________
It's electric!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
integrerc
Član
Član



Pridružen-a: Sob 23 Sep 2006 14:50
Prispevkov: 399
Aktiv.: 2.51
Kraj: Novo mesto

PrispevekObjavljeno: Pet Nov 25, 2016 10:51 am    Naslov sporočila:   Odgovori s citatom

Hm, ne vem kako, ampak res je, ime knjižnjice je bil lcd.lib v sami knjižnjici pa je imenovana lcd_lib. Spremenil sem ime knjižnice na lcd_lib in očitno bo v redu, error-a ni več.
Bom pa proti večeru preizkusil, če dela tudi funkcionalno.
Hvala, lp!

_________________
Lep pozdrav!
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 -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3 ... , 24, 25, 26  Naslednja
Stran 25 od 26

 
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: 177 dni


Powered by phpBB © 2001, 2005 phpBB Group