PIC16F628A naprogramování – Assembler – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PIC16F628A naprogramování – Assembler – Fórum – Programujte.comPIC16F628A naprogramování – Assembler – Fórum – Programujte.com

 

micha4074740
Newbie
24. 8. 2016   #1
-
0
-

Ahoj,  snažím se zprovoznit jeden jednoduchý testovací program na PIC16F628A.

V simulátoru program funguje, ale když ho nahraji do picu nefunguje.

Myslím si že pravděpodobně nastavuji špatně konfigurační bity. Nevím jak nastavím aby pic jela přes svůj vlastní vnitřní oscilátor.

Program pracuje tak že, dvě sekundy je na všech výstupech logická jedna a dvě sekundy logická nula.

INCLUDE "P16F628A.INC"
		LIST P=16F628A, R=DEC
;-------------------------------------------------------------
__CONFIG _PWRTE_ON & _WDT_OFF 
 ORG 0X00

RAMOFF EQU 0X0C
d1 EQU RAMOFF
d2 EQU RAMOFF+1
d3 EQU RAMOFF+2

BSF STATUS,RP0
  BCF STATUS,RP1
MOVLW B'00000000'          
MOVWF TRISA   
MOVLW B'00000000'          
MOVWF TRISB

BCF STATUS,RP0
  BCF STATUS,RP1
NOP
NOP



ZPET
 
 MOVLW B'11111111'        ; VŠUDE JEDNA
MOVWF  PORTA

MOVLW  B'11111111'        ; VŠUDE JEDNA
MOVWF  PORTB


movlw	0x11
	movwf	d1
	movlw	0x5D
	movwf	d2
	movlw	0x05
	movwf	d3
Delay_0
	decfsz	d1, f
	goto	$+2
	decfsz	d2, f
	goto	$+2
	decfsz	d3, f
	goto	Delay_0

			;4 cycles
	goto	$+1
	goto	$+1


MOVLW B'00000000'        ; VŠUDE NULY
MOVWF  PORTA

MOVLW  B'00000000'        ; VŠUDE NULY
MOVWF  PORTB


movlw	0x11
	movwf	d1
	movlw	0x5D
	movwf	d2
	movlw	0x05
	movwf	d3
Delay_1
	decfsz	d1, f
	goto	$+2
	decfsz	d2, f
	goto	$+2
	decfsz	d3, f
	goto	Delay_1

			;4 cycles
	goto	$+1
	goto	$+1

GOTO ZPET

END

Děkuji předem za vaše rady.

Nahlásit jako SPAM
IP: 86.63.207.–
KIIV
~ Moderátor
+43
God of flame
24. 8. 2016   #2
-
0
-

Je na case mrknout do toho includu. Mas tam vsechny mody vyjmenovane.

Jinak defaultne to ceka externi RC clanek na RA7

Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
micha4074740
Newbie
24. 8. 2016   #3
-
0
-

Do  includu jsem již koukal, ale nastavení je tam více, pro nastavení vnitřního oscilátoru by to měl být asi jeden z těchto?

_FOSC_INTOSCIO       EQU  H'3FFC'    
_INTOSC_OSC_NOCLKOUT EQU  H'3FFC'    
_INTRC_OSC_NOCLKOUT  EQU  H'3FFC'    
_FOSC_INTOSCCLK      EQU  H'3FFD'    
_INTOSC_OSC_CLKOUT   EQU  H'3FFD'    
_INTRC_OSC_CLKOUT    EQU  H'3FFD'    

Když tak nato koukám tak by to mohl být jeden z těchto. No jdu to vyzkoušet.

_INTOSC_OSC_NOCLKOUT EQU  H'3FFC'    
_INTRC_OSC_NOCLKOUT  EQU  H'3FFC' 
Nahlásit jako SPAM
IP: 86.63.207.–
KIIV
~ Moderátor
+43
God of flame
24. 8. 2016   #4
-
0
-

#3 micha407474
jsou tam dve skupiny se stejnym nastavenim. Druha polovina jen jeste aktivuje CLKOUT nekde kolem RA6. Nemas sanci minout spravne nastaveni (snad jen v pripade, ze zrovna ten CLKOUT vystup chces mit volny jako IO)

Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
micha4074740
Newbie
24. 8. 2016   #5
-
0
-

Tak jsem tam vyzkoušel dát nejprve _INTOSC_OSC_NOCLKOUT 

S tímto se procesor jen nadměrně zahříval a nic nedělá.

Tak jsem tam dal _INTRC_OSC_NOCLKOUT .

S tímto procesor pracuje jak jsem naprogramoval, ale jen do té doby než narazí na zpožďovací smyčku přes kterou se nedostane. 

Co se týče zapojení procesoru, stačí jen mít zapojené napájení (PIN-5,14) + reset -MCLR (PIN-4) NA 5V?

Nahlásit jako SPAM
IP: 86.63.207.–
KIIV
~ Moderátor
+43
God of flame
24. 8. 2016   #6
-
0
-

No jelikoz hodnoty jsou totozne:

_INTOSC_OSC_NOCLKOUT EQU  H'3FFC'    
_INTRC_OSC_NOCLKOUT  EQU  H'3FFC'   

tak bych se docela divil, pokud by tam byl nejaky rozdil.

Nadmerne zahrivani znamena obvykle zkrat nejakeho pinu na napajeni, obracenou polaritu (tam uz to byva cmoud), zkratovane vystupy (na ruznych vystupnich urovnich), pretizeni vystupu pripadne maximalniho proudu Vcc pinem a tak...

Proc je ten kod vlastne tak rozsypanej? Navesti maji byt v prvnim sloupci, instrukce ve druhem. Takhle se to vubec neda cist. Jednou kapitalkama, jednou malyma, ...

Delay bych dal jako volani funkce, staci pak doladit casovani, ale u tohodle to je vcelku jedno.. (vicemene bys hodil    call delay, coz zabere asi 2 instrukce a na konci hodil ret, coz jsou dalsi dve instrukce (ale je to misto GOTO ZPET. Vesmes bys usetril cca jedno to goto $+1.

Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
micha4074740
Newbie
25. 8. 2016   #7
-
0
-

Tak jsem to už vyřešil. Problém jsem měl ve smyčce. A co se týče přehřívání tak se my ho podařilo trochu zkratovat. 

Nahlásit jako SPAM
IP: 86.63.207.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 75 hostů

Podobná vlákna

Naprogramovani EEPROM — založil Rucker Jan

Naprogramovani stopek — založil matesxy

Naprogramovani sablony — založil putti

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý