Sida 1 av 2

Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 10:54:28
av newbadboy
Försöker toggla portarna på kretsen men det händer inget alls

Vad är det jag missar?

Har satt intern oscillator

Kod: Markera allt


void main() {
 OSCCON = 0xF0; // Internal oscillator 8MHz and PLL enabled
 ANSELA = 0;    // All I/O pins are configured as digital
 ADCON0 = 0;    // Disable ADC module
 PORTA = 0;     // Initial value of port A bits
 TRISA = 0;     // Port A pins are configured as outputs
 while(1){
 PORTA = ~PORTA;    // Invert all port A bits
 delay_ms(500);
 }
}

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 11:29:16
av AndLi
Utan att ha koll på ev register hade jag först plockat bort delay_ms för att utesluta problem med timern som styr den...

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 11:45:23
av newbadboy
det är skrivet i MikroC där denna rutinen är med som standard och den rutinen har jag använt 100tals ggr utan problem.

Bifogar även schemat.
Capture.PNG

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 12:11:36
av ojz0r
Vet inte om det spelar någon roll men i databladet står det följande ang. register TRISA:
"TRISA3: RA3 Port Tri-State Control bit
This bit is always ‘1’ as RA3 is an input only"


Det blir inte problem om du försöker forcera 0? Kanske testa att skriva 0x8 bara?

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 12:55:56
av newbadboy
den har jag iof faktiskt missat.

Provade precis 0x8 men ingen skillnad

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 12:57:33
av Zkronk
Det händer inget konstigt med Reset-pinnen?

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 13:00:55
av newbadboy
Stabilt på 3v3.

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 13:01:02
av Klas-Kenny
Vad blir det för spänning på pinnarna då?

Blir alla 0V, 3.3V eller följer de pull up/down-motstånden?

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 13:13:10
av newbadboy
port

0 0V
1 0V
2 0V
3 3v3
4 3v3
5 0V

de verkar följa PU/PD i princip

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 13:14:03
av Swech
Definiera en variabel istället som du togglar och kopierar till porten
Att läsa porten sådär kan trassla till det på en PIC
Swech

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 13:26:48
av newbadboy
Har provat innan att bara skriva 1 och 0 direkt till porten med samma resultat

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 13:39:46
av Swech
The Data Latch (LATx registers) is useful for read-modify-write operations on the value that the I/O pins are driving. A write operation to the LATx register has the same effect as a write to the corresponding PORTx register. A read of the LATx register reads of the values held in the I/O PORT latches, while a read of the PORTx register reads the actual I/O pin value. Ports that support analog inputs have an associated ANSELx register. When an ANSEL bit is set, the digital input buffer associated with that bit is disabled. Disabling the input buffer prevents analog signal levels on the pin between a logic high and low from causing excessive current in the logic input circuitry. A simplified model of a generic I/O port, without the interfaces to other peripherals, is shown in Figure 11-1.
Kolla databladet
Det är LATA du skall köra med, inte PORTA

Swech

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 13:48:37
av newbadboy
Hmm lata var oxå en grej jag provade tidigt.

Jag skrev innan LATA.F4=1 och 0 men det gav inget

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 13:57:55
av Swech
Kör eländet i simulatorn och singlesteppa så blir det nog lättare att hitta
och läs databladet grundligt , skumma inte bara igenom det..
Det kan t.ex. vara någon AD portinställning som ställer till det
Swech

Re: Världens enklaste kod vill inte funka (Pic 12LF1822)

Postat: 1 juni 2022, 14:50:09
av Klas-Kenny
newbadboy skrev: 1 juni 2022, 13:13:10 port

0 0V
1 0V
2 0V
3 3v3
4 3v3
5 0V

de verkar följa PU/PD i princip
Med andra ord så sätts de troligen aldrig ens till utgångar.
Säkert att du ställt in rätt processormodell etc. i projektinställningar, att programmet verkligen kommer in i processorn, och att du fått oscillatorinställningar rätt så den inte är inställd på extern oscillator? Du har ju inte skrivit något om konfigurationsbitarna.