Sida 2 av 4

Re: Hur gå vidare?

Postat: 19 november 2015, 09:58:20
av newbadboy
Nej nej det är inte så jag menar :).

Det var mest att mikroC är rätt litet jämf med ex mplab och därför kanske inte man kan få så mycket råd iom folk inte kan dess egenskaper.

Re: Hur gå vidare?

Postat: 19 november 2015, 10:02:57
av Glenn
men du kanske kan ändra ämnet på tråden iaf ? ..väldigt intetsägande

Re: Hur gå vidare?

Postat: 19 november 2015, 10:03:10
av sodjan
Jo, men *intrycket* man får av dina inlägg, är att du inte
ens har letat efter "eeprom" i MikroC manualen. Gör det,
gör som det är dokumenterat i exemplen och återkom
om det uppstår problem... :-)

Re: Hur gå vidare?

Postat: 19 november 2015, 10:04:54
av newbadboy
Glenn skrev:men du kanske kan ändra ämnet på tråden iaf ? ..väldigt intetsägande

Ändrat nu när jag vet vad det är jag ska kolla på ;)

Re: Hur gå vidare?

Postat: 19 november 2015, 10:10:40
av newbadboy
sodjan skrev:Jo, men *intrycket* man får av dina inlägg, är att du inte
ens har letat efter "eeprom" i MikroC manualen. Gör det,
gör som det är dokumenterat i exemplen och återkom
om det uppstår problem... :-)

Har jag inte heller eftersom jag är på jobb nu och ska väl eg göra annat än det...

men kunde inte motstå det och kollade snabbt hjälpfilen. Ser iaf väldigt lätt ut men funkar det bara till 16F och 18F? hmmmm. MÅste kolla upp det mer

// for PIC16
unsigned short EEPROM_Read(unsigned short address);
// for PIC18
unsigned short EEPROM_Read(unsigned int address);

// for PIC16
void EEPROM_Write(unsigned short address, unsigned short data);
// for PIC18
void EEPROM_Write(unsigned int address, unsigned short data);

Kod: Markera allt

char ii;                                 // loop variable

void main(){
  ANSEL =  0;                            // Configure AN pins as digital I/O
  ANSELH = 0;
  C1ON_bit = 0;                          // Disable comparators
  C2ON_bit = 0;

  PORTB = 0;
  PORTC = 0;
  PORTD = 0;

  TRISB = 0;
  TRISC = 0;
  TRISD = 0;
   
  for(ii = 0; ii < 32; ii++)             // Fill data buffer
    EEPROM_Write(0x80+ii, ii);           // Write data to address 0x80+ii

  EEPROM_Write(0x02,0xAA);               // Write some data at address 2
  EEPROM_Write(0x50,0x55);               // Write some data at address 0150

  Delay_ms(1000);                        // Blink PORTB and PORTC LEDs
  PORTB = 0xFF;                          //   to indicate reading start
  PORTC = 0xFF;
  Delay_ms(1000);
  PORTB = 0x00;
  PORTC = 0x00;
  Delay_ms(1000);

  PORTB = EEPROM_Read(0x02);             // Read data from address 2 and display it on PORTB
  PORTC = EEPROM_Read(0x50);             // Read data from address 0x50 and display it on PORTC

  Delay_ms(1000);

  for(ii = 0; ii < 32; ii++) {           // Read 32 bytes block from address 0x80
    PORTD = EEPROM_Read(0x80+ii);        //   and display data on PORTD
    Delay_ms(250);
    }
}

Re: Skriva till eeprom i PIC

Postat: 19 november 2015, 10:51:42
av newbadboy
Kollade lite snabbt på MIkroE forum och det verkar iaf som folk gjort program med kommandon ovan ihop med 675an

Re: Skriva till eeprom i PIC

Postat: 19 november 2015, 11:53:19
av sodjan
PIC12 och PIC16 (i alla fall de vanliga modellerna) är i botten
samma arkitektur, det är bara att PIC12 är 8-pinnars modellerna.

Kör lite tester så får du se... :-)

Re: Skriva till eeprom i PIC

Postat: 19 november 2015, 14:03:09
av newbadboy
Ska jag def göra. Fan ju mer man lär sig ju mindre vet man :)

Re: Skriva till eeprom i PIC

Postat: 24 november 2015, 08:45:26
av newbadboy
Ja sån tur hade jag inte. Den stödjer inte 12F serien.

Re: Skriva till eeprom i PIC

Postat: 24 november 2015, 10:12:30
av sodjan
"Den"? Vad syftar det på? MikroC? Låter lite underligt...

Re: Skriva till eeprom i PIC

Postat: 24 november 2015, 10:44:29
av newbadboy
Jepp mikroc

Alltså deras färdiga funktioner för att läsa skriva eeprom stödjer inte 12 serien

Re: Skriva till eeprom i PIC

Postat: 24 november 2015, 10:47:08
av Icecap
Ladda då ner MPLAB och XC8, då är du i nivå med MikroC.

Re: Skriva till eeprom i PIC

Postat: 24 november 2015, 11:57:11
av sodjan
> Alltså deras färdiga funktioner för att läsa skriva eeprom stödjer inte 12 serien...

Har det stöd i någon dokumentation eller har du fått något felmeddelande
som indikerar att det är så? Eller vad bygger du det på? Jag säger inte
att det är fel, jag bara undrar hur det visade sig, och jag förstår
inte heller varför det skulle vara skillnad på PIC12 och PIC16
i detta avseende från samma generation processorer...

Re: Skriva till eeprom i PIC

Postat: 24 november 2015, 14:26:52
av newbadboy
Det står i dokumentaionen i helpfilen att det endast stödjer 16/18. Jag har inte provat själv då grejer och PCB är beställt och jag har inte fått hem det. Även på MikroEs forum har jag fått svar av teknisk support att det inte stödjer men de skulle kolla med R&D om det går att lägga till för framtiden. Lite svagt att det inte stödjer 12f kan jag iaf tycka. Supporten jag pratat med hade försökt kompilera ngn exempel men inte fått det till att funka för 12F

Jag kan ju inte vara den första att vilja skriva till ett eeprom på 12F serien på ett enkelt sätt.

Re: Skriva till eeprom i PIC

Postat: 24 november 2015, 14:41:58
av Icecap
I det datablad jag har för PIC12F675 (DS41190C) står det i sektion 8 hur man gör helt exakt.
Exempel 8-1 visar hur man läser från EEPROM'et.
Exempel 8-2 visar hur man ska göra för att skriva.

De visar i assembler men att skriva dessa i C är extremt enkelt.

Vad är problemet?