Bitte um Mithilfe bei pic-as Problem - bitte nur wer sich auskennt

OP #7256700
Lesenswert?

bitte nur antworten wenn du dich mit pic-as wirklich auskennst - bitte 
keine Vermutungen oder unnötige doofe Kommentare die nichts mit der 
Sache an sich zu tun haben (das ermüdet langsam).

Warum leuchtet die LED am PIN 5 des PIC16F15313 nicht ?
1
    PROCESSOR 16F15313
2
    #include <pic16f15313.inc>
3
    
4
// CONFIG1
5
 config FEXTOSC = OFF
6
 config RSTOSC = EXT1X
7
 config CLKOUTEN = OFF
8
 config CSWEN = ON
9
 config FCMEN = ON
10
// CONFIG2
11
 config MCLRE = OFF
12
 config PWRTE = OFF
13
 config LPBOREN = OFF
14
 config BOREN = ON
15
 config BORV = LO
16
 config ZCD = OFF
17
 config PPS1WAY = ON
18
 config STVREN = ON
19
// CONFIG3
20
 config WDTCPS = WDTCPS_31
21
 config WDTE = OFF
22
 config WDTCWS = WDTCWS_7
23
 config WDTCCS = SC
24
// CONFIG4
25
 config BBSIZE = BB512
26
 config BBEN = OFF
27
 config SAFEN = OFF
28
 config WRTAPP = OFF
29
 config WRTB = OFF
30
 config WRTC = OFF
31
 config WRTSAF = OFF
32
 config LVP = OFF
33
// CONFIG5
34
 config CP = OFF
35

36
 PSECT resetVec, class=CODE, delta=2
37
 
38
 resetVec:
39
    PAGESEL main
40
    goto main
41
    
42
 PSECT code
43
 
44
 main:
45
    
46
    banksel TRISA
47
    clrf    TRISA
48
    
49
    banksel PORTA
50
    clrf    PORTA
51
    
52
    banksel LATA
53
    clrf    LATA
54
    
55
    banksel ANSELA
56
    clrf    ANSELA
57
        
58
 loop:
59
    
60
    banksel TRISA
61
    bcf     TRISA, 2
62
    
63
    banksel LATA
64
    bsf     LATA, 2    
65
    
66
    goto   loop
67

68
    end resetVec
#7256771
Lesenswert?

Michael S. schrieb:
> bitte keine Vermutungen oder unnötige doofe Kommentare die nichts mit der
> Sache an sich zu tun haben (das ermüdet langsam).

Bitte keine unnötig doofen Fragen hier stellen

Michael S. schrieb:
> NEIN denn das C-Programm läuft doch mit diesem Aufbau !!!

Ach, DAS Programm, ja, danke für den Einblick. Herr wirf Hirn.

Michael S. schrieb:
> bcf     TRISA, 2

RA2 ist immer noch 4
OP #7256787
Lesenswert?

hier ist das analoge C-Programm dazu, wo es funktioniert:
1
// PIC16F15313 Configuration Bit Settings
2

3
// CONFIG1
4
#pragma config FEXTOSC = OFF
5
#pragma config RSTOSC = EXT1X
6
#pragma config CLKOUTEN = OFF
7
#pragma config CSWEN = ON
8
#pragma config FCMEN = ON
9
// CONFIG2
10
#pragma config MCLRE = OFF
11
#pragma config PWRTE = OFF
12
#pragma config LPBOREN = OFF
13
#pragma config BOREN = ON
14
#pragma config BORV = LO
15
#pragma config ZCD = OFF
16
#pragma config PPS1WAY = ON
17
#pragma config STVREN = ON
18

19
// CONFIG3
20
#pragma config WDTCPS = WDTCPS_31
21
#pragma config WDTE = OFF
22
#pragma config WDTCWS = WDTCWS_7
23
#pragma config WDTCCS = SC
24

25
// CONFIG4
26
#pragma config BBSIZE = BB512
27
#pragma config BBEN = OFF
28
#pragma config SAFEN = OFF
29
#pragma config WRTAPP = OFF
30
#pragma config WRTB = OFF
31
#pragma config WRTC = OFF
32
#pragma config WRTSAF = OFF
33
#pragma config LVP = OFF
34

35
// CONFIG5
36
#pragma config CP = OFF
37

38
#include <xc.h>
39

40
void main(void) {
41
    
42
    TRISA2 = 0;
43
      
44
    while(1) {
45

46
        RA2 = 1;
47

48
    }
49
    
50
return;
51

52
}
OP #7256809
Lesenswert?

dem C-Compiler den Assemblercode zu entlocken ist mal ein echt guter Tip 
- bestimmt geht das irgendwie - aber ob ich das so schnell hinkriege...

aber man kann doch bestimmt das auf dem PIC gespeicherte Programm 
de-aassemblieren oder ? Kann mir einer das schnell und sicher 
beschreiben wie das geht ohne dass ich da lange suchen und viel 
nachlesen muss ?
Beitrag #7256818 wurde von einem Moderator gelöscht.
Beitrag #7256821 wurde von einem Moderator gelöscht.
Beitrag #7256827 wurde von einem Moderator gelöscht.
Beitrag #7256828 wurde von einem Moderator gelöscht.
Beitrag #7256836 wurde von einem Moderator gelöscht.
Gast #7256840
Lesenswert?

Michael S. schrieb:
> dem C-Compiler den Assemblercode zu entlocken ist mal ein echt guter Tip
> - bestimmt geht das irgendwie - aber ob ich das so schnell hinkriege...

Ist es der XC-8? Gugst du:

https://onlinedocs.microchip.com/pr/%20GUID-BB433107-FD4E-4D28-BB58-9D4A58955B1A-en-US-1/index.html?GUID-0EDEA40D-44E0-48FF-A5D7-3860807DF5E3

Ist auch die "-S" Option...
Angehängte Dateien:
Gast #7256877
Lesenswert?

da ein beispiel, wie man mit comments im Quelltext den Reviewern das 
Leben leichter macht:

https://itecnotes.com/electrical/electronic-exiting-interrupt-routine-in-pic16f18877/

Dann könntest du auch erklären was die Abnsicht hinter den Zeilen
1
 config FEXTOSC = OFF
2
 config RSTOSC = EXT1X
ist.

Falls damit einen externen Oszi konfiguriert werden sollte - wo ist der 
auf dem Board?
Gast #7256899
Lesenswert?

>an diesen PIC kann man meines Erachtens gar keinen externen Oszillator
>anschließen

Im Daten Blatt steht was von 32MHz Input clock, und selbst wenn man ihn 
nicht anschliessen kann, sollte der TO so gnädig sein uns zu veratten, 
welche Taktung er gewählt hat und wie er das konfigurieren wollte.

Es fehlen die verdammtem Kommantare !
Gast #7256902
Lesenswert?

Michael S. schrieb:

> an diesen PIC kann man meines Erachtens gar keinen externen Oszillator
> anschließen - und das C-Programm läuft ja mit diesen Configs

Dann musst du halt in Assembler nachbauen, was auch immer diese (oder 
auch alle verwendeten) Configs tun. Irgendwo muss das ja dokumentiert 
sein. Also würde jeder Normalbegabte diese Doku suchen und dann lesen...
Gast #7256908
Lesenswert?

c-hater schrieb:
> Michael S. schrieb:
>
>> an diesen PIC kann man meines Erachtens gar keinen externen Oszillator
>> anschließen - und das C-Programm läuft ja mit diesen Configs
>
> Dann musst du halt in Assembler nachbauen, was auch immer diese (oder
> auch alle verwendeten) Configs tun. Irgendwo muss das ja dokumentiert
> sein. Also würde jeder Normalbegabte diese Doku suchen und dann lesen...

Eben:
http://ww1.microchip.com/downloads/en/DeviceDoc/40001897A.pdf
Gast #7256910
Lesenswert?

Der To/Troll hat weder ein ASM tutorial / Beispiel gelesen, sowie auch 
nicht das Datenblatt durchgeschaut. Einfach bei C bleiben, das ist 
einfacher, weniger low level, dann kann man ra2 verwenden anstelle von 
porta und dass man lata falsch verstanden hat, dass kann man nicht 
entschuldigen, genausowenig wie dass man kein ASM tutorial oder Beispiel 
angesehen hat denn sonst wuerde man den fehler ja sehen.
#7256914
Lesenswert?

Jo jo, hab mich mal "schlau" gemacht.

Meines Erachtens sollte alles passen. NUR im Simulator bekomme ich 
damit PortA nicht auf Digital I/O, wird immer als Analog-In 
gekennzeichnet!?
Scheint auch des öfteren (?-O) im Reset "hängen zu bleiben"....
Das is nix für den schnellen Einstig!


Hilft dir selbst, dann hilft dir Gott schrieb:
> Dann könntest du auch erklären was die Abnsicht hinter den Zeilen
>  config FEXTOSC = OFF
>  config RSTOSC = EXT1X
> ist.

Reset-condition für den Oszillator und co.
Du kannst damit die Analog-Module auf gewünschten Pin legen.
Passt beides.
Gast #7256924
Lesenswert?

Teo D. schrieb:

> NUR im Simulator bekomme ich
> damit PortA nicht auf Digital I/O, wird immer als Analog-In
> gekennzeichnet!?

> Scheint auch des öfteren (?-O) im Reset "hängen zu bleiben"....

?weil kein Takt kommt? Vcc Ramping verkackt? Reset-eingang flaoting?


> Du kannst damit die Analog-Module auf gewünschten Pin legen.
> Passt beides.

Ja was denn nun?
Oben schreibste passt nicht, unten dagegen passt??
Gast #7256956
Lesenswert?

Michael S. schrieb:
> weil da die Lösung nicht ist. Wie lautet sie denn, du Schlaukopf ?

Was soll diese Piss-Antwort? Kann mich nicht erinnern dich beleidigt zu 
haben.
Mach mal einen Punkt - aber einen ganz Grossen.
Du wolltest/willst eine Led mit dem Pic As dauerhaft zum Leuchten 
bringen.
Der Code ist in deinem ersten Thread von " Apollo M. (Firma: @home)"
angegeben und ich habe dies sogar mit dem Simulator getestet und einen 
Screenshot davon gemacht.
Fuer Leute wie dich habe ich keine Zeit mehr.Reine Zeitverschwendung 
hier.
(Firma: @home) #7256985
Lesenswert?

Michael S. schrieb:
> ich hab TRISA,4 und LATA,4 geändert, aber damit geht es auch nicht - ist
> doch klar.

Klar ist, dass du sehr laut bist! Sinnnig war wenig bis nichts von dir.
Zukünftig auch mal in die pic16fxxx.inc schauen und die passenden 
Bezeichner verwenden, dann kann auch weniger verwechselt werden.


main:
   banksel  ANSELA
   bcf  ANSA2
   banksel  TRISA
   bcf  RA2
   banksel  LATA
   bsf  RA2
   goto  $
   end  ResetVec
(Firma: @home) #7257015
Lesenswert?

Teo D. schrieb:
> Ändere mal das mal:
> ;    #include <pic16f15313.inc> // Löschen!!!
>     #include <xc.inc> // <- so und nicht anders

#include <pic16f15313.inc> kann so  verwendet werden, ist nur unschlau, 
weil dann immmer per Hand nachgezogen werden muss, wenn der pic16fxxx 
wechselt.

xc.inc includiert ansonsten nur die pic16fxxx.inc sonst nichts.

@Michael S.

@HW, sinniger wäre vielleicht auch den RA2 im OC mode zu verwenden, also 
low-active ...

Jetzt lass mal toggle und definierte Variable im RAM, ...
Vom pic-as cmd/macro/linker functions hast du fast noch nichts 
verwendet, da warten noch einige Überraschungen auf den Anwender!
#7257023
Lesenswert?

Apollo M. schrieb:
> #include <pic16f15313.inc> kann so  verwendet werden, ist nur unschlau,
> weil dann immmer per Hand nachgezogen werden muss, wenn der pic16fxxx
> wechselt.
>
> xc.inc includiert ansonsten nur die pic16fxxx.inc sonst nichts.

Stehen aber offensichtlich wichtige Defs. drin, deren fehlen(?) der 
Pre-Compiler, scheinbar klaglos schluckt. Warum auch immer.


PS: Dran geglaubt hab ich ja auch nich wirklich. Daher hab ichs ja 
vergessen zu testen. :)
(Firma: @home) #7257048
Lesenswert?

Der pic-as hat einige Vorteile zum MPASM, aber die Linker 
Verständnishürde psect. Ist dadurch aber wesentlich flexibler, du kannst 
z.B. Segmente überlagern
also gleiche RAM Addr für unterschiedliche lokale Var und das Bist 
optimiert sogar, was bedeutet du musst für die EEPROM write Signature 
die Optimierung abschalten sonst ist sie weg und nix mit eepron write.

Es gibt zwei pre-compiler, die gleichzeitig verwendet werden können - 
der vom C-Compiler und der von pic-as!

Das User Guide ist völlig unzureichend ... und wichtige Infos stehen 
vergraben im Fließtext.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren