 |

|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 08 04, 22:40. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » MPLAB 7.20 sim CORE-E0001: Stack over flow
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
 |
MPLAB 7.20 sim CORE-E0001: Stack over flow |
Parašytas: 2006 11 15, 14:14 |
|
|
|
Su MPLAB 7.20 simuluojant koda paprasta kaip " trys kapeikos"
#include "p16f84a.inc"
org 0x00
movlw 0x11
movwf 4Ah
end
vis meta klaida
CORE-E0001: Stack over flow error occurred from instruction at 0x000409
bet pragrama kaip ir ivykdoma ( irasomas 11 i 4A registra )
Kame replės ? Čia MPLAB bugas koks ar kaip suprast ?
Idomu kur tų klaidu poaaiškinimuas rast . Bandžiau googlei ieškot ... matyt nemoku  |
|
|
|
|
 |
MPLAB 7.20 sim CORE-E0001: Stack over flow |
Parašytas: 2006 11 15, 20:47 |
|
|
|
Eee... iš ko sprendi kad problema su pertraukimais?
Supranti univere kaip ir viskas veikė gerai ( gal tiesiog buvo išjungtas klaidų rodymas ) nereikėjo jokių goto
Ką dar pastebėjau tai su run klaida atsiranda kiekviena karta, su Animate tik pragramai "praveikus" tiksliai 8 karta . |
|
|
|
|
 |
MPLAB 7.20 sim CORE-E0001: Stack over flow |
Parašytas: 2006 11 15, 22:55 |
|
|
|
Proteus VSM simuliatorius jokios klaidos su šiuo kodu nerodo. Nematau nei vienos instrukcijos, kuri kreipiasi į steką (call ar pertraukimų). |
|
|
|
|
 |
MPLAB 7.20 sim CORE-E0001: Stack over flow |
Parašytas: 2006 11 15, 23:15 |
|
|
|
išsiblaškęs greit parašiau, nes kažkada turėjau panašų atvejį, bet ten pertraukimai buvo naudojami. todėl ištryniau ką prirašęs. Šiaip jei su steku klaida, reiktų atsiversti :view-hardware stack ir pažiūrėti, ką ten rodo.
Šiaip jei tavo čia pateikiama programa visa, o ne gabalas koks, tai dirba.
Nors tokįą kodo pabaigą nekorektiška palikti. Reiktų prieš end parašyti grįžimą į programos pradžią. |
|
|
|
|
 |
 |
MPLAB 7.20 sim CORE-E0001: Stack over flow |
Parašytas: 2006 11 23, 09:23 |
|
|
|
Hem kagi tarkim tai MSLAB'o bugas
Dabar kitas klausimas ( toks filosifinis ) iš kitos operos
PVZ
http://www.interq.or.jp/japan/se-inoue/e_pic6_15.htm
Paprasčiausio LED mirksiuko su pic ASM Kodas
mode sudomino EQU direktyva tipo galima su ja galima suteikt varda atminties lastelei (registruj) arba skaičiuj
pvz suteikiamas skaičiuj
ra0 equ 00 ;RA0 bit
ra1 equ 01 ;RA1 bit
ra2 equ 02 ;RA2 bit
ra3 equ 03 ;RA3 bit
ra4 equ 04 ;RA4 bit
pvz suteikiama lastelei (registruj)
cnt500u equ 0c ;500usec counter Address
cnt1m equ 0d ;1msec counter Address
cnt100m equ 0e ;100msec counter Address
cnt500m equ 0f ;500msec counter Address
cnt1s equ 10 ;1sec counter Address
Čia pagal kokia filosofija gaunas kuris kur ( supratau iš konteksto ) ?
PVZ jei ra0 equ 00 ;RA0 bit gautus kad ra0 vardas suteikaimas INDF registriuj nes jo adresas 00 . Kokia prasmė juk ir taip jis turi varda INDF ? Bet tuomet klausimas kaip MPASM kompileris atpažysta kada vardas suteikaimas registriuj ? Ar tipo jei (pvz vardas equ x ) "x" patenka į GPU adresu erdve gaunas kad vardas gavo x registro adresa . Bet jei man "vardas" reik suteik "x" skaičių ? kaip kompileris ta atpažysta
ačių |
|
|
|
|
 |
 |
MPLAB 7.20 sim CORE-E0001: Stack over flow |
Parašytas: 2006 11 23, 14:58 |
|
|
|
Klaidingai supranti
čia ra0 autoriaus sugalvotas kintamojo pavadinimas ir jo reikšmė lygi 0.
Pažiūrėk programoje toliau.
btfss porta,ra0
t.y. tas pats kaip btfss porta,0 , t.y tikrina porto A jauniausią bitą. |
|
|
|
|
 |
 |
MPLAB 7.20 sim CORE-E0001: Stack over flow |
Parašytas: 2006 11 23, 15:33 |
|
|
|
sadivas rašo: |
t.y. tas pats kaip btfss porta,0 , t.y tikrina porto A jauniausią bitą. |
Tai būtent taip ir supratau . Tik "problema" ta kad 0 yra skaičius ( argi ne ? )
http://www.interq.or.jp/japan/se-inoue/e_pic3_3.htm#btfss
BTFSS Bit Test f, Skip if Set
Form [label]BTFSSf, b
( label is omitable, shows SPACE code )
Operands f : Register file addesss ( 00(00h) to 127(7Fh) )
b : Bit address ( 0 to 7 ) Argi čia ne skaičius ?
Tai bendru atveju EQU galima suteik varda tik kažkokiam registruj ar kažkokio registro kažkokiam bituj ?
Tai kas tada čia ( tipo mokymo medžiagoj ) priskiedaliota ?
EQU pasirinkto kintamojo apibrėžimas. Šia direktyva yra suteikiami vardai duomenų atminties registrams. Pavyzdžiui, norint suteikti registrui, kurio adresas yra 0Ch vardą Vardas, į programą reikią įvesti šią eilutę:
Vardas EQU 0Ch ;priskiriamas pavadinimas ląstelei, kurios adresas Ch
Naudojant šia direktyva, taip pat galima nustatyti pastoviųjų skaitines vertes, pvz.:
Septyni EQU 7 ; (pastoviajai Septyni priskirta verte 7).
Arba
kas čia ?
p00 equ b'11111110'
p01 equ b'11111101'
p02 equ b'11111011'
p03 equ b'11110111'
p04 equ b'11101111'
p05 equ b'11011111'
Adresai ? nemanau ( Nu su ra0 gal suklydau adresuoja bita bet čia tikrai skaičius )
Bendru atveju vis teik klausimas išlieka kaip kompileris atpažysta kur adresas kur skaičius ? :rolll: |
|
|
|
|
 |
 |
MPLAB 7.20 sim CORE-E0001: Stack over flow |
Parašytas: 2006 11 23, 16:15 |
|
|
|
čia nekorekti6kai para6yta:
Vardas EQU 0Ch ;priskiriamas pavadinimas ląstelei, kurios adresas Ch
EQU direktyva kintamąjam priskiriame kokią nors reikšmę ir viskas. Kompiliatorius atpažysta kur kintamasis yra registras ar skaičius pagal tai, kurioje komandinės eilutės vietoje kintamasis parašytas.
Pvz: Vardas EQU 7
jei paršysim btfss Vardas,Vardas
tai pirmą kartą parašytas Vardas bus registras, kurio adresas šiuo atveju yra 07h, o po kablelio parašytas Vardas jau bus bito numeris (čia 7).
T.y tikrinsim registro, kurio adresas 07h vyriausią bitą.
Pvz2: MOVLW Vardas
MOVWF Vardas
Pirmoje eilutėje Vardas bus skaičius 7, antroje- registras adresu 07h |
|
|
|
|
 |
MPLAB 7.20 sim CORE-E0001: Stack over flow |
Parašytas: 2006 11 23, 19:07 |
|
|
|
Aaa Dašuto
EQU visada skaičiuj suteikia varda . Kaip jis bus panaudotas ar kaip duomuo ar kaip adresas prilauso nuo tolimesnių komandų su tuo vardu  |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Football Training Kit
Football Training Equipment,
Football Skills,
Football Training |
|

|
 |