PIC probleempje

Henry S.

Moderator

Daarom kan je beter

pic asm code:


main	
	movlw	0xFF
	movwf	PORTB
deadend	
        goto	deadend
        end

doen.

Geen kans op overloop in oude code of data.

[Bericht gewijzigd door Henry S. op donderdag 4 februari 2010 16:48:51 (21%)

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

alvorens mij te laten opnemen in een mentale inrichting, want ik ben ze
een beetje aan het verliezen nog even deze korte beschrijving van de situatie, waarschijnlijk onderhevig aan een foutieve configuratie.

ik heb;
-een breadboard
-op dat bb zijn geplaatst:
_pic16f627a
_7 segment LED
_7805 + afvlak condensatoren
_4MHz kristal + condensatoren
_ MCLR pin van pic via 10K R verbonden naar 5vdc

pic asm code:


org 	0x00
	banksel TRISB ; Selecteer de bank waar TRISB in zit, bank 1 in dit geval
	movlw	0x00	
	movwf	TRISB
	banksel PORTB; Selecteer de bank waar PORTB in zit, bank 0 in dit geval
main	
	movlw	0xFF
	movwf	PORTB
	goto	main
	end

...en er gebeurt niets... maar misschien is dat breadboardje niks waard?

Ik neem aan dat je in je ASM ook hebt aangegeven met welke PIC je werkt, je de include file voor de 627a ook daadwerkelijk in je code include en je de fuses ook allemaal instelt?

neen, dat doe ik dus niet en ik neem aan dat deze onontbeerlijk zijn?

[Bericht gewijzigd door Sinutab op donderdag 4 februari 2010 18:10:13 (15%)

pic asm code:


pic=16F627
__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _BODEN_ON & _LVP_OFF
	

suc6

[Bericht gewijzigd door woutervi op donderdag 4 februari 2010 22:42:41 (77%)

Is het configuratie woord juist ingesteld? Post eens de volledige code.

[Bericht gewijzigd door steve04 op donderdag 4 februari 2010 22:31:33 (26%)

Arco

Special Member

neen, dat doe ik dus niet en ik neem aan dat deze onontbeerlijk zijn?

Lijkt me sterk dat je de headerfile niet #include.
Dan moet je een hele waslijst aan errors krijgen...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

pic asm code:

#include pic=16F627
__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _BODEN_ON & _LVP_OFF

dit heb ik nu als header erbij gezet, maar mijn prul werkt dus nog altijd niet...ik heb alles nagemeten en mijn pic krijgt de voedingsspanning ed goed binnen dus weet ik het nu echt niet meer.
Doel van de schakeling is dat bij het opstarten wordt afgeteld van 5 naar 1 met een delayfactor van 500ms.
Ik had reeds in het verleden een soortgelijke schakeling gemaakt met een 16f84a en deze werkte wel perfect.
Ikzelf werk met pic simulator van oshonsoft en heb daar nooit een header in geschreven en toch werkte alles goed met 16f84a.
...maar ik zal niet rusten alvorens dit werkende te krijgen!!!!

Zoals gezegd: probeer eens een blink-a-led van voti ofzo, dan weet je alvast dat je hardware in orde is.

If you want to succeed, double your failure rate.

Wat je daar neerzet klopt ook niet. Zie hier een voorbeeld, zoals ik het zojuist uit een ASM van mezelf haal:

pic asm code:


	LIST P=16F676 ; Hier geef je aan met welke PIC je werkt
	; Met de onderstaande regel include je de standaard
	; include file van Microchip. Hierin is voor onder 
	; andere alle registers een makkelijk te onthouden namen
	; gedefinieerd. Bestanden zijn te vinden in de 
	; mplab_installatie_dir\MPASM Suite\
	#include <P16F676.inc>

	; Hieronder configureer je het CONFIG register. Zie
	; hiervoor de datasheet en de include file

	__config _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

Let wel, dit voorbeeld is dus voor de 16F676!

En nogmaals, plaats je schema hier eens! Misschien zit daar wel een fout in, hoe simpel het schema ook is.

En over het 'schrijven' van een include file. Dit hoef je dus niet zelf te doen. En inderdaad werkt het zonder ook wel, het maakt je programmeer-leven alleen wat makkelijker en overzichtelijker: PORTB onthoud een stuk makkelijker dan 0x06. Vooral omdat niet bij iedere PIC PORTB op adres 0x06 zit!

[Bericht gewijzigd door RvL op vrijdag 5 februari 2010 13:20:07 (15%)

In je configuratie woord staat HS_OSC dit moet je plaatsen indien je een kristal van 8, 10 of 20MHz gebruikt. Jij hebt aangegeven dat je een kristal van 4MHz gebruikt dan moet je in plaats van HS_OSC XT_OSC gebruiken.