Sida 3 av 5

Postat: 25 februari 2007, 22:45:16
av sodjan
Fungerar det ?

Postat: 25 februari 2007, 23:24:35
av BEEP
mr_fatise, ber så mycket om ursäkt men jag kunde inte låta bli efter ha läst Icecaps kommentarer :)

Postat: 26 februari 2007, 10:55:08
av mr_fatise
>Fungerar det ?

Nja, får inte bort "ERROR" på rad 40 när jag ska köra det till Hex.
WARNING 40 : Found label after column 1. (rrl)
ERROR 40 : Illegal opcode (ADRESH)

Kod: Markera allt

RAD39   bcf    STATUS, C 
RAD40	rrl    ADRESH, W		;Värdet divideras med 2
RAD41	movwf	Result			;255/2= 0-127
Ska klura lite...
Nån som har nåt tips?

Postat: 26 februari 2007, 11:07:22
av Icecap
rrl?

Testa med 'rrf'

Postat: 26 februari 2007, 11:42:17
av sodjan
För det första finns det (som Icecap antydde) inget som heter RRL.

För det andra borde det vara tydligt eftersom MPLAB kommer att markera
"rrl" med en avvikande färg. Hos mig blir "rrl" lila medans alla *korrekta*
instruktioner är blå. Blir det inte så hos dig !?

Postat: 4 mars 2007, 18:38:00
av mr_fatise
Nu är projektet igång igen!
Alla komponenter på den digitala sidan är monterade samt programmerad pic!
Bild

Dess värre så får jag inte ut något värde på displayerna. Har labbat lite och märkt att BCD ingångarna på 4511 måste vara kopplade till jord för att ses som låga alltså inte bara hänga i luften, annars verkar den inte skriva ut nåt värde.

Ska labba vidare lite. Byglar jag däremot in ex: plus på 2, (1,4,8 till jord) så får jag ut en tvåa, lyfter jag bort jorden från första biten så visar displayen lite vad som helst.

Postat: 4 mars 2007, 19:13:54
av sodjan
> BCD ingångarna på 4511 måste vara kopplade till jord...

Eller 5V.

> lyfter jag bort jorden från första biten så visar displayen lite vad som helst.

Helt förväntat. Pinnen blir lite vad som helst. Helt förbjudet att göra så... :-)

Sen är det lite dålig stil att inte med ett ord kommentera RRL-problemet.
Att följa upp de tips som man har fått tidigare hör till god netiquet,
annars ser det ut som om man inte bryr sig om tipsen som man får,
och då får man snart inga fler tips...

Postat: 4 mars 2007, 20:37:57
av mr_fatise
>Eller 5V.

Japps de stämmer bra de.

>Helt förväntat. Pinnen blir lite vad som helst. Helt förbjudet att göra så...

Hmm, hur hittar man lättast en lösning på detta då? SKa prova o lägga ett motstånd från jord parallelt med picens utgång. LAbbar på lite...

>Sen är det lite dålig stil att inte med ett ord kommentera RRL-problemet

:oops: Sorry grabbar, e super tacksam för tipsen... E till enorm hjälp när man kör fast på nånting! RRL blev somsagt inte blått som på resterna rader, men som vilsen nybörjare vågar man inte fråga allt för mycket o testar o labbar lite.. Tills man kör fast. :D

Tänkte fylla på med lite mer info! Har haft ett jäkla strul med att programmera direkt på labbkortet. Den hittar kretsen men får hela tiden felmeddelande när den skulle skriva. Testade med kondingar här o var, kortare sladdar, koppla bort 5v matningen, utan kristall osv. Efter mycket strul lyckats jag hitta felkällan. Använde mig av en tioledad bandkabel och använda mig av varannan ledare. Verkade som att klockan störde ut datasignalen så med resterande ledare kopplade till jord fungerar det nu mer perfekt.

Nu gäller det bara att få PICen att överhuvudtaget skriva ut ett värde.
Blir morgondagens problem.

Postat: 4 mars 2007, 21:55:03
av sodjan
> Hmm, hur hittar man lättast en lösning på detta då?

Generellt gäller att *ingångar* på CMOS krestar oavsett vilka det är
(PIC/AVR processorer, 40xx serien eller 74HC serien) aldrig ska lämnas "öppna". Ingången kommer att börja plocka upp elektriska fålt ur luften
(t.ex 50/100 Hz nätbrum) och börja svänga. Strömförbrukningen kan
också stiga kraftigt.

> SKa prova o lägga ett motstånd från jord parallelt med picens utgång.

Men PIC'ens utgång är väl alltid hög *eller* låg. Det är bara om du sätter
PIC'ens pinne som *ingång* som det kan bli problem. En annan sak är
att man kan få problem under uppstart (reset) innan din kod har hunnit
sätta pinnarna som (aktiva) utgångar. Därför sätter man ofta dit
pull up/down (beroende på vad man behöver) motstånd för att få ett
definierat "reset-läge". Men å andra sidan är det ju inte så kritiskt om
ett par displayer visar "skräp" under ett tiotal millisekunder...

> Använde mig av en tioledad bandkabel

Hur lång ungefär ? Upp till 20-25 cm borde inte vara något problem. Men
visst blir det mer överhörning när kablarna ligger limmade intill varanda.
Du skulle också kunna testa med att dra isär de olika kablarna i bandkabeln.

Postat: 4 mars 2007, 23:32:56
av mr_fatise
Generellt gäller att *ingångar* på CMOS krestar oavsett vilka det är
(PIC/AVR processorer, 40xx serien eller 74HC serien) aldrig ska lämnas "öppna".

Testade nu att koppla pulldown motstånd på 10k och nu visas "000" när man startar upp.. Dessvärre verkar picen aldrig ändra någon av utgångarna. Men nu går de att programera på plats samt att displayerna visar ett logiskt värde så nu e de bara o börja labba med programeringen igen.

Hur lång ungefär ?

Ca 20cm lång... testade att dra isär bandbakeln halva biten utan något resultat. Testade att endast koppla in kabeln på programerarn och sedan montera PICen i sockeln på programeran. Inte då heller gick det att programera. Verkar va väldigt störkänsligt, nu kan jag dock tillomed programera med primär +5V spänning på labbplattan.

Postat: 4 mars 2007, 23:45:22
av sodjan
Jag minns inte riktigt, men *är* det en ICSP-programmerare du har ?
Eller "bara" en ZIF-programmerare där du har försökt "förlänga" signalerna ?
Det kan vara en väldig skillnad i hur drivningen av linjerna är konstruerad...

Postat: 5 mars 2007, 19:27:36
av mr_fatise
Jag minns inte riktigt, men *är* det en ICSP-programmerare du har ?

Jupp precis, men den har även plats för olika dil-kapslar. Sjlva klockan och datasignalen ligger parallellt med alla socklar och ICSP porten.. Så de verkade va väldigt störkänsligt. Kanske inte är bästa programmerarn heller för den delen.

Tänkte även passa på att be om lite råd. Går inge bra alls i programmeringen hrä. Har labbat några timmar men utan resultat. Tömma picen samt skriva data till den är inga problem.

Har med denna kod försökt sätta RB0 hög. Har modifierat knöllat o böckat i 2timmar och nu behöver jag hjälp. För er som är lite insatta, är Config raden rätt? Står rätt kryptiskt om den i databladet

Kod: Markera allt

;Information Data
;PIC16F876A

;------inkludera definitioner----
#include <p16f876a.inc>

__CONFIG _XT_OSC &_CP_OFF &_DEBUG_OFF &_CPD_OFF &_BODEN_OFF &_WDT_OFF &_PWRTE_OFF

org		0x000

BANKSEL TRISB
clrf	TRISB ;Set all outputs. 
BANKSEL PORTB
clrf	PORTB ;Clear PORTB

START

movlw	b'11111111'	;Set all pins HIGH.
movwf	PORTB		;On PORTB

END
Får ingen som helst reaktion på någon utgång..

Postat: 5 mars 2007, 20:00:51
av sodjan
> För er som är lite insatta, är Config raden rätt? Står rätt kryptiskt om den i databladet

Använd databladet *tillsammans* med (slutet av) INC filen, så blir det tydligare.

Läs på i databladet kapitel PORTB om analoga funktioner.
Du ska sannolikt stänga av ADC och/eller komparatorer...

Sen så har du inget "slut" på ditt program.
Det kommer att loopa tillbaka till starten och PORTB pinnarna kommer
att "blinka"... Lägg till "loop, goto loop" eller något liknande.

Postat: 5 mars 2007, 23:30:36
av mr_fatise
Vill bara inleda med att jag är mycket tacksam för hjälpen. Den är en stor hjälp på traven.

>Använd databladet *tillsammans* med (slutet av) INC filen, så blir det tydligare.

Ahha, tackar tackar.. den filen hade jag inte ens öppnat och granskat så noga tidiagre! Nu ska man nog kanske iallfall få till de.

Postat: 6 mars 2007, 23:03:10
av mr_fatise
Nu börjar jag bli riktigt uppgiven med det här projektet.
Har testat att snoka lite koder på nätet och köra med bara för att se om PICen överhuvudtaget lever. Lyckades få tag i en HEX-fil som fick en diod att blinka så fungerar verkar den göra.. dessvärre har jag ingen aning om hur koden var skriven. Sedan ytterligare än kod med A/D omvandling, dessvärre printar den bara ut 00000111 på portB oavsett insignal, kan mycket väl vara fel i koden iförsig.

Finns det någon som har/eller länk till någon sidan med en fungerande väldigt lätt assemblerkod till 16F876A som man kan bygga vidare på? eller iallfall se strukturen på..

Har kört lite med en 16F628A och där är det inga problem. Antar att det är någon komparator eller A/D inställning alternativt något i Configraden som jag inte har 100% koll på.