PICking PICling

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: PICking PICling

Inlägg av Erik M »

PICkit skulle inte släppa fram till fel MC och MPLAB skulle inte acceptera skillnad mellan Device och INC.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46968
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: PICking PICling

Inlägg av TomasL »

Jodå, det går alldeles utmärkt att bygga med fel inc eller fel device i inställningarna
Hexfilen innehåller ingen information om processorn, så så länge du väljer rätt processor i din programmerare kan du bränna vilken hexkod som helst.

Kod: Markera allt

---  E:\Tomas\Dokument\MPASMTEST\test.asm  -------------------------------------------------------
                                                  1:     	list		p=12f683
                                                  2:     	#include	p12f683.inc
   000    1683     BSF 0x3, 0x5                   3:     	BANKSEL 	PIE1
   001    130C     BCF 0xc, 0x6                   4:     	bcf			PIE1,ADIE
   002    1283     BCF 0x3, 0x5                   5:     	BANKSEL		STATUS
   003    1003     BCF 0x3, 0                     6:     	BCF 		STATUS,C
   004    1483     BSF 0x3, 0x1                   7:     	bsf			STATUS,DC
Detta är exakt samma som jag postade tidigare, dock har jag valt en 12F609 i stället
Och här är samma kod med en 18F452

Kod: Markera allt

---  E:\Tomas\Dokument\MPASMTEST\test.asm  -------------------------------------------------------
                                                  1:     	list		p=12f683
                                                  2:     	#include	p12f683.inc
  0000    0100     MOVLB 0                        3:     	BANKSEL 	PIE1
  0002    9D8C     BCF 0x8c, 0x6, BANKED          4:     	bcf			PIE1,ADIE
  0004    0100     MOVLB 0                        5:     	BANKSEL		STATUS
  0006    9003     BCF 0x3, 0, ACCESS             6:     	BCF 		STATUS,C
  0008    8203     BSF 0x3, 0x1, ACCESS           7:     	bsf			STATUS,DC
Som du ser går det alldeles utmärkt att välja fel processor, i vissa fall fungerar det i andra inte
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PICking PICling

Inlägg av sodjan »

> PICkit skulle inte släppa fram till fel MC...

Det finns ingen device information i HEX filen. Om arkitekturen stämmer
i stort sätt, så kan den nog gå igenom. Om man försöker bränna något
som är mer fel (en PIC18 fil till en PIC12/16) så kan det nog uppstå fel.
Om man har data till minnes areaor som inte existerar så får man verify fel.

> ...och MPLAB skulle inte acceptera skillnad mellan Device och INC.

Jag minns inte hur MPLAB-8 gjorde men MPLAB-X ger ett fel om device och
INC skiljer. Om däremot *både* device och INC är "fel" så går det igenom...

Hur som helst, är vi alltså överens om att BANKSEL genererar rätt antal
instruktioner utifrån den processor man använder? Bra i så fall, men jag har
inte sett att du har skrivit så.

> Det är absolut barnsligt att envist fortsätta med ett ämne som inte är relevant.

Menar du diskussionen om BANKSEL?
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: PICking PICling

Inlägg av SeniorLemuren »

Erik M skrev:Det är absolut barnsligt att envist fortsätta med ett ämne som inte är relevant.
Huruvida det har stringens har ingen betydelse då relevans saknas.
Dvs - att blå blåbär är blå innehar stringens, men har föga (egentligen ingen, men det kan ju gälla när man ska köra över blå blåbär som är blå...) relevans i frågan om lämpligt däckstryck.
Frågan om jag har fel inställningar hamnar på samma ställe - eftersom koden går ut och gör det jobb den ska.
Vilket den inte skulle göra om det exempelvis var fel INC-fil - eller fel MC.
Och nog med hopp på person, vilket dessutom mest bara tyder på osäkerhet om den egna förmågan.
Det säger ingenting om den påhoppades förmåga eller kunskap.


Korrekt svar på frågan om T0IF och T0IE är, enligt din text, att TMR0 rullar alltid och sätter T0IF varje gång den rullar över - oavsett allt annat.
För att kunna fånga, dvs generera ett interupt call, när T0IF sätts så måste T0IE vara satt.
RTFM, någon...?

Följdfrågan är vad GIE egentligen gör - dvs vad som menas med "unmasked interupts".
Följer detta med stort intresse. På något vis får jag associationer till en viss skoförsäljare. :mrgreen:

Anyway, din inställning om att det är barnsligt att försöka klarlägga detta med BANKSEL eftersom det fungerar ändå, är faktiskt helt fel. Det är nämligen inte bara du som berörs av detta. Många inklusive mig själv kanske kan vara intresserade av orsakerna. Skriver man i ett forum som detta så lägger man inte på locket sådär utan vidare.

Sedan blev jag faktiskt lite full i skratt av "vilket dessutom mest bara tyder på osäkerhet om den egna förmågan." Haha, sagt av någon som inte visste vad det var för skillnad mellan digital och analog input för bara en kort tid sedan. Sodjan och TomasL samlade kunskaper i detta ämne ligger ljusår före dina kunskaper och erbjuder den bästa hjälp du kan hitta. Ta väl vara på den kunskap de erbjuder och var inte så förbaskat styvnackad.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46968
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: PICking PICling

Inlägg av TomasL »

Värt att notera, i det sista exemplet, där jag valt 18F452 som device, men behållt 12f683.inc så blir den genererade koden helt annorlunda, av naturliga skäl.
MPLAB ger inga som helst varningar att man valt fel Device/Inc-fil, och naturligtvis går detta att bränna helt problemfritt i en 683a, resultatet blir nog väldigt mycket annorlunda om man försöker köra det.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PICking PICling

Inlägg av sodjan »

Jag skrev nyss:

> Jag minns inte hur MPLAB-8 gjorde men MPLAB-X ger ett fel om device och INC skiljer.

Det jag menade var ifall det skilljer mellan device inställnigen och "list" direktivet...

Helt rätt att man inte får något larm (men sannolikt en massa andra följdfel)
om man kör med fel INC fil...

> och naturligtvis går detta att bränna helt problemfritt i en 683a

Nja, beroende på hur HEX filen ser ut så får man nog en del intressanta verifierings fel... :-)

Slutligen så är jag fortfarande intresserad av hur Erik M gjorde för att få
dubbla BxF instruktioner till en 2-bankers modell.
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: PICking PICling

Inlägg av Erik M »

Lemuren - att jag tittar på grunden betyder inte att jag inte vet den allmänna användningen. Oavsett skillnaden mellan häst och djur.
Och för att fortsätta på din redan från början sneda spårning - om de båda herrarna inte accepterar samma utdrag de själva svänger runt med, då är det inget att tillföra.

Min fråga var om BANKSEL verkligen skulle generera den extra, som jag tyckte verkade onödig, BCF STATUS,0x6 vid varje BANKSEL. Svaret var att så borde det inte vara, det var svar nog för mig.
Ville någon gräva vidare i detta föreslogs att göra detta på lämpligare ställe än i denna tråd.

Då denna tråds substans nu är borttrollad lämnar jag den därhän.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46968
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: PICking PICling

Inlägg av TomasL »

Ja du har fått frågan besvarad BANKSEL genererar INTE någon extra instruktion, Om du får en extra instruktion så gör du fel.
Och eftersom du ställde frågan så gör du uppenbarligen fel.
Fortfarande gäller: gör om, gör rätt, RTFM.
Det är uppenbarligen lite konstigt att du vidhåller din sak, trots att den bevisligen är helt felaktig, och dessutom fegar ur på detta sätt.

Till andra som läser tråden.
Det ÄR fullt möjligt att generera program med felaktiga inställningar i MPLAB, helt utan varningar eller nånting, Precis som Erik M har gjort.
Kontentan och sensmoralen är:
Se till att MPLAB är konfigurerat på rätt sätt, Sätt alltid konfigurationsregistren i koden, dvs använd aldrig den i MPLAB inbyggda funktionen.

Huruvida det är möjligt att göra samma fel i MPLABX låter jag vara osagt, då jag inte använder MPLABX.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PICking PICling

Inlägg av sodjan »

> det var svar nog för mig.

Kan du svara på en enkel ja/nej fråga i alla fall?
Det borde inte vara allt för besvärligt... :-)

Får du *fortfarande* 2 st. BxF instruktioner mot en 2 banks modell?
Erik M
Inlägg: 1380
Blev medlem: 23 februari 2012, 18:34:39
Ort: Göteborg

Re: PICking PICling

Inlägg av Erik M »

Anledningen varför det kändes fullständigt ointressant var hur det, speciellt av Tomas, förutsattes att jag gjort fel.
Det blev än mer ointressant, rent av otrevligt, när Tomas inte ens gav rätt svar på frågan om timer och interupt.
Istället bara rapade ur sig text från databladet, som om det var ett svar ej redan genomgått - ett antal gånger.

Man frågar för att kontrollera sin egen förståelse - inte för att ifrågasätta den tillfrågades kunskap.
Dennes kunskap är ju vad man söker... Utrop i stil med "RTFM!" är direkt anstötliga.
Anstötliga på samma vis som Lemurens försök göra sig lustig över vad han inbillar sig veta om mig...
...jag skulle knappast åstadkommit vad jag gjort (med start som datalärare 1980) om jag var den idiot som Lemuren låter påskina ovan (om denne nu inte tagit sitt förnuft till fånga och raderat sitt inlägg).

Nog om det, väldigt mycket nog om det.

Vad gäller BANKSEL har jag detta att säga...

Nej, jag har inte fel inställningar eller filer.
Det var naturligtvis det första som kollades när det framstod att något torde vara fel.

I de två kontrollinstanser MPLAB IDE v8.00 (fråga inte...) som förefaller ge svar på om ens kod verkar vettig, dvs vad av den som går igenom och blir... mer kodig kod, så att säga, så ger...
-> Program Memory två rader kod för BANKSEL - STATUS,5 och STATUS,6.
Detta i både Symbolic och Machine, hur det ser ut i Opcode Hex har jag inte fått anledning gräva mig ner i.
-> Disassembly Listing en rad kod för BANKSEL - STATUS,5.

Vänligen
Erik
10/4
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46968
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: PICking PICling

Inlägg av TomasL »

Både jag och Sodjan har med all önskvär tydlighet visat att:
Rätt konfigurerat ger MPLAB felfri kod i avseende BANKSEL.
Fel konfigurerad ger MPLAB felaktig kod i avseende på BANKSEL.

Beträffande TIMER0, så står det faktiskt svart på vitt hur det hela fungerar (I tydliga enkla meningar).
Texten i databladet ger ingen som helst möjlighet till tvetydighet.
Om man inte begriper den enkla texten skall man nog pyssla med något annat i stället.
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: PICking PICling

Inlägg av SeniorLemuren »

Erik M skrev: ...jag skulle knappast åstadkommit vad jag gjort (med start som datalärare 1980) om jag var den idiot som Lemuren låter påskina ovan (om denne nu inte tagit sitt förnuft till fånga och raderat sitt inlägg).

Nog om det, väldigt mycket nog om det.
Njae, det är inte riktigt nog med det. Detta med idiot är faktiskt din utsago det får stå för dig. Vad jag skrev i mitt inlägg är min uppfattning baserad på ett flertal av dina tidigare inlägg och det står jag för och ser ingen anledning att radera. Dessutom så får man faktiskt inte ta bort gjorda inlägg, läs paragraf 1.3 i forumets regelverk.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46968
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: PICking PICling

Inlägg av TomasL »

Sen är det väl frågan om ts är ett troll, det verkar onekligen så, med tanke på inläggen.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PICking PICling

Inlägg av sodjan »

> Nej, jag har inte fel inställningar eller filer.

Problemet är att *vi* ju inte vet att det är som du påstår.
Du måste faktiskt *visa* att det faktiskt är så som du säger.
Med bakgrund av tidigare trådar så finns det ingen anledning
att ta det du skriver för något självklart. Knappast vårat fel...

> I de två kontrollinstanser MPLAB IDE v8.00 (fråga inte...) som förefaller ge svar på om ens
> kod verkar vettig, dvs vad av den som går igenom och blir... mer kodig kod, så att säga, så ger...
> -> Program Memory två rader kod för BANKSEL - STATUS,5 och STATUS,6.
> Detta i både Symbolic och Machine, hur det ser ut i Opcode Hex har jag inte fått anledning gräva mig ner i.
> -> Disassembly Listing en rad kod för BANKSEL - STATUS,5.

Det du behöver visa är ett komplett källkods exempel ("reproducer", det behöver
in princip inte vara mer än en BANKSEL samt list och include direktiven) samt den
resulterande list filen.

För att göra det enkelt kan du testa med detta:

Kod: Markera allt

	list      p=12F683             ; list directive to define processor
	#include <p12f683.inc>         ; processor specific variable definitions

prog1 code
    banksel t2con
    banksel ccpr1l
    bcf t2con, T2CKPS0
    banksel wpu

    end
När jag bygger det så får jag *en* BxF instruktion för varje BANKSEL.

Vad får du?

> MPLAB IDE v8.00

Ja, vi kanska kan visa att det fanns någon bugg i en gammal version...
Skriv svar