Sida 2 av 3

Postat: 22 april 2007, 23:41:10
av sodjan
För att undvika mer gissningslek så vore "hela bilden" bra att ha.
T.ex en komplett CONFIG inställning. Och hur den är inkopplad.
Och själva "bränningen" går bra utan fel ?
Lägger man inte CONFIG inställningarna i källkoden ? Eller kan kan inte det ?
Och fixa konfigen av porten, d.v.s de analoga bitarna. OK, behöver kanske
inte vara orsaken, men i alla fall... :-)

Postat: 23 april 2007, 09:42:24
av ankan
Okey här kommer lite mer info... Kör allt på en PIC18F1320..

Hämtade Configurationen med Microchips IDE:
Bild

Koden ser ut så här:

Kod: Markera allt

void main() {
  ADCON1 = 0xFF;
  TRISB = 0;           // PORTB is output
  TRISA = 0;           // PORTB is output
  do {
    PORTB = 0xFF;      // Turn ON diodes on PORTB
    PORTA = 0xFF;      // Turn ON diodes on PORTB
    Delay_ms(1000);    // 1 second delay
    PORTB = 0;         // Turn OFF diodes on PORTB
    PORTA = 0;      // Turn ON diodes on PORTB
    Delay_ms(1000);    // 1 second delay
  } while(1);          // endless loop
}//~!
Har satt lysdioden på RB0. Dioden är sedan kopplad till jord via 100 ohm.
Kristall är kopplad mellan OSC1 och OSC2. Kondingar på 15pF är kopplad mellan jord och respektive ben på kristallen.
Kristallen är på 20 Mhz.
Har avstörningskonding på 100nF mellan jord och +5 så nära PICen som möjligt.

Så vad kan vara fel? Det händer inget och jag har satt lysdioden för att testa de andra benen på PICen utan framgång. Och ja, lysdioden fungerar, har testat för säkerhetsskull.

Postat: 23 april 2007, 09:50:29
av ankan
Programmeringen går utmärkt med wisp628.

Postat: 23 april 2007, 10:07:12
av sodjan
OK, ser ju OK ut...

> TRISA = 0; // PORTB is output
> PORTA = 0xFF; // Turn ON diodes on PORTB
> PORTA = 0; // Turn ON diodes on PORTB

Felaktiga kommenterar är värre än inga kommenterar alls!
Nu vet man inte om det är koden eller kommentarerna som är fel... :-)

> Dioden är sedan kopplad till jord via 100 ohm.

Bör fungera, notera bara att man vanligstvis lägger lydioden (och
igentligen alla typer av "laster") till + och låter PIC pinnen "dra" dom
till jord. En CMOS utgång kan vanligtsvis "draina" högre ström än
vad den kan "sourca". 100 ohm är även lite "onödigt" lite. En LED
ska synas med allt mellan 500 ohm - 1Kohm.

Kondingarna till kristallen *borde* fungera, men prova gärna med
något i stil med 22 pF. Sannolikt inte ditt problem dock...
Jag skulle prova att ställa om till intosc för att utesluta kristallproblem.

> Programmeringen går utmärkt med wisp628.

Ja men då så, då är *jag* nöjd !! :-)

Postat: 23 april 2007, 10:28:08
av ankan
Testar att köra init exempel från datablad + att jag försöker köra interna oscillatorn.

Kod: Markera allt

void main() {
  OSCCON = 0x7F;
  PORTB = 0x00;
  LATB = 0x00;
  ADCON1 = 0x70;
  TRISB = 0xCF;
  while(1) {};
}
Försöker nu alltså köra med interna oscillatorn i 8Mhz. Satte CONFIG1H (300001) till 0xF8 (intern osc med RA6 och RA7 som portar)

Har kopplat dioden till RB5 som ska bli utgång enligt databladet. Den är satt till 0 och har därför satt dioden enligt följande: RB5 - LYSDIOD - MOTSTÅND - +5V.

Hur som helst fungerar det fortfarande inte. :(

Postat: 23 april 2007, 10:31:29
av Marta
Pröva att sätta andra och tredje raden i den config Du postat som disabled.

Hur hanteras OSCCON? Sköter C om sådana trivlialiteter, eller kan det vara så att den hasar sig fram på 31kHz och därför tycks vara stendöd?

Postat: 23 april 2007, 10:46:16
av ankan
Har provat att disabla "Fail-Safe Clock Monitor" och "Internal External Switch Over" utan framgång.

Har konfat OSCCON till 0x70 för att köra interna oscillatorn nu.

Men fortfarande händer inget,men det går utmärkt att programmera PICen..

Postat: 23 april 2007, 10:52:53
av ankan
Sodjan, jag har testat 22pF också utan skillnad.. Det verkar som att jag inte får den att snurra helt enkelt.. Suck...

Postat: 23 april 2007, 11:04:15
av sodjan
OK, sannolikt ett skit-fel.
Börja om från början med en ny uppkoppling...

Postat: 23 april 2007, 11:08:19
av ankan
Eller inse att man har programmerat PICen med fel HEX fil hela tiden... SUCK!!

Tack för all hjälp i alla fall.. Skulle varit trevligt omman kunde implementera xwisp2w i IDEn på något sätt eller ha ett grafiskt gränssnitt.

Allt fungerar som det ska nu...

Postat: 23 april 2007, 11:44:05
av sodjan
> Skulle varit trevligt omman kunde implementera xwisp2w i IDEn på något sätt eller ha ett grafiskt gränssnitt.

Personligen ser jag inte behovet, men fixa det om du vill.
På vilket sätt hade det hjälp i just *detta* fall?
GUI's är inget som automatiskt hjälper mot helt vanligt slarv...

Om man väljer att redigera sin källkod i något annat verktyg ("editor")
som g.ex UltraEdit32 (som jag har testat) så kan man bygga in macron
som med ett musklick bygger applikationen och anropar XWisp2w i ett svep.
Fungerar aldeles utmärkt...

Postat: 23 april 2007, 12:35:54
av ankan
Det skulle kunna vara alternativet. I mitt fall så var det att jag hade gjort en genväg som tar och bränner ut en viss hex fil. I och med att jag hade definierat hex-filen i genvägen så blev det fel varje gång jag brände.

Postat: 23 april 2007, 12:43:34
av v-g
Jag kör med Total Commanderdär drar man bara upp xwisp2w till ikonraden. Sen ändrar man bara i kommandoraden på ikonen och skriver i tex:"port 1 go". Vips så är det bara att dra och släppa hexfilen på ikonen så "bränns" filen. Att kompilera och bränna tar 10 sekunder ungefär.

Väldigt smidigt om man har många olika filer i diverse kataloger. Sen gör det ju inget att själva programmet är 100 gånger bättre än Utforskaren/Explorer.

Dock hindrar det inte från att dra fel HEXfil och släppa på ikonen vilket har hänt några gånger för mycket :roll:

Har tyvärr inte hittat någon möjlighet att köra tex en .BAT-fil i mplab, det skulle annars vara nice.

Postat: 23 april 2007, 14:06:56
av Marta
Om förutsättningen är att manhänger fast vid sammaprojekt ett tag så går det ju att skapa en ikon vid sidan om som man klickar och därmed flashar programmet. Enda hinder jag kan se är om mplab håller filen öppen av någon anledning så den inte kan accessas.

Postat: 23 april 2007, 15:02:58
av sodjan
Det är inte MPLAB som skapar eller öppnar HEX filen, det är antingen
MPASM*.EXE (om man kör absolute mode) eller MPLINK.EXE (om man
kör relocatable mode). Båda körs bara tillfälligt under själva
assembleringen och länkningen. Möjligen om man kör MPSIM, men
jag tror inte att MPSIM använder HEX filen i alla fall.

För mindre tester så har jag bara ett DOS fönster öppen. Sedan
är det bara alt-tab, pil-upp och ENTER så flashas det om.