Har någon testat Code Configuration Plug-In för MPLAB® X ?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
dubbear
Inlägg: 328
Blev medlem: 7 april 2010, 23:59:24
Ort: Göteborg
Kontakt:

Har någon testat Code Configuration Plug-In för MPLAB® X ?

Inlägg av dubbear »

Jag tvingades byta processor för mitt nuvarande projekt, och plockade då en av dom nyare(16f1708) som stöds av detta verktyg.
Personligen är jag mycket imponerad!
Capture.JPG
Speciellt i synergi med peripheral pin select där man kan mappa om samtliga digitala in och utgångar.

Bilden ovan genererar följande kod

Kod: Markera allt

void PWM4_Start_rear_pwm_10(void)
{
    // Set the PWM to the options selected in the MPLAB® Code Configurator.
    // PWM4POL active_hi; PWM4EN enabled; 
    PWM4CON = 0x80;
    
    // PWM4DCH 255; 
    PWM4DCH = 0xFF;
    
    // PWM4DCL 48; 
    PWM4DCL = 0x30;
    
    
    // Selecting Timer6
    CCPTMRSbits.P4TSEL = 0x80;
}

Och när man definierar en digital port skapas en stor mängd macron som man kan använda om man vill.
Här är för utgången Front_Inductor_Feed .


Kod: Markera allt

#define Front_Inductor_Feed_TRIS               TRISA2
#define Front_Inductor_Feed_LAT                LATA2
#define Front_Inductor_Feed_PORT               RA2
#define Front_Inductor_Feed_WPU                WPUA2
#define Front_Inductor_Feed_ANS                ANSA2
#define Front_Inductor_Feed_SetHigh()    do { LATA2 = 1; } while(0)
#define Front_Inductor_Feed_SetLow()   do { LATA2 = 0; } while(0)
#define Front_Inductor_Feed_Toggle()   do { LATA2 = ~LATA2; } while(0)
#define Front_Inductor_Feed_GetValue()         RA2
#define Front_Inductor_Feed_SetDigitalInput()    do { TRISA2 = 1; } while(0)
#define Front_Inductor_Feed_SetDigitalOutput()   do { TRISA2 = 0; } while(0)

#define Front_Inductor_Feed_SetPullup()    do { WPUA2 = 1; } while(0)
#define Front_Inductor_Feed_ResetPullup()   do { WPUA2 = 0; } while(0)
#define Front_Inductor_Feed_SetAnalogMode()   do { ANSA2 = 1; } while(0)
#define Front_Inductor_Feed_SetDigitalMode()   do { ANSA2 = 0; } while(0)
Pins.JPG
Eusart.JPG
Jag har aldrig konfat en USART snabbare. :tumupp:
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av sodjan »

Kollade det där för ett par dagar sedan, och det såg ju trevligt ut.
Nu så körde jag det i ett redan påbörjat projekt, så det blev inte så
bra, man ska nog gå "all in" och använda konfiguratorn fullt ut... :-)
Användarvisningsbild
dubbear
Inlägg: 328
Blev medlem: 7 april 2010, 23:59:24
Ort: Göteborg
Kontakt:

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av dubbear »

Om man går all in så får man väldigt lättläst kod.
även om de känns lite ovant.

Kod: Markera allt

    if (Front_Led.is_conected == 1){
        Front_Inductor_Feed_SetDigitalOutput();
        Front_Inductor_Feed_SetHigh();
        PWM3_Start_front_pwm_10();
}
Här behövs ju knappast några kommentarer i koden.

edit: Stavfel och koden
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av sodjan »

Är det som med en del andra definitioner att man får en drop-down
då man skriver punkten efter "Front_Led." med tillgängliga alternativ?

Annars föredrar jag lättläst kod framför kryptisk kod som *måste*
kommenteras... :-) Det blir ju lika mycket att skriva i alla fall.

Sen så är väl/ju 1 "true" i C, så det borde kunna skrivas:

Kod: Markera allt

    if (Front_Led.is_conected){
        Front_Inductor_Feed_SetDigitalOutput();
        Front_Inductor_Feed_SetHigh();
        PWM3_Start_front_pwm_10();
}
:-)
Användarvisningsbild
dubbear
Inlägg: 328
Blev medlem: 7 april 2010, 23:59:24
Ort: Göteborg
Kontakt:

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av dubbear »

Om det var detta du menade så funkar det med Ctrl+Space när man har börjat skriva.
och if (Front_Led.is_conected) är bättre :tumupp:
Dropp.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av sodjan »

Ja men va bra, då gör det inget att namnen är långa.
Det blir bara dokumentation "på köpet", så att säga.

Det var inte riktigt det jag menade, om man skriver t.ex
"INTCONbits" så får man de olika bitarna i en lista då man
skriver en punkt, men resultatet blir ju detsamma.

Alltså ungefär som "Front_Led.is_conected", d.v.s om man får
"is_conected" och de övriga options när man skriver punkten.

Aja, spelar ingen större roll...
Användarvisningsbild
dubbear
Inlägg: 328
Blev medlem: 7 april 2010, 23:59:24
Ort: Göteborg
Kontakt:

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av dubbear »

Ja de får man, Men just i detta fallet är det för att jag har definierat en struct

Kod: Markera allt

typedef struct {
    uint8_t is_conected;
    uint8_t needs_SMPS;
    uint16_t power_lv;
} LED;
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av sodjan »

Aha, OK då är jag med.
Jag trodde att det kom from konfiguratorn...
kodar-holger
EF Sponsor
Inlägg: 970
Blev medlem: 26 maj 2014, 12:54:35
Ort: Karlskoga

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av kodar-holger »

Här behövs ju knappast några kommentarer i koden.
Kommentarer behövs alltid. Dom är inte där för att tala om VAD man gör utan VARFÖR man gör det.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av TomasL »

Är motstånder till dylika hjälpmedel, framförallt för nybörjare, risken är att användaren inte riktigt vet vad han håller på med.
Det var ju till exempel orsaken till att man i MPLAB-X numera måste skriva in konfigurationsbitarna i koden, istället för som i gamla MPLAB, den generade det automatiskt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av sodjan »

> Kommentarer behövs alltid. Dom är inte där för att tala om VAD man gör utan VARFÖR man gör det.

Man kanske inte behöver kommentera på varje rad utan kan lägga en
samlad beskrivning av (och med bakgrund och orsak till) den aktuella koden.
Den kod som visades som exempel behöver ingen detaljbeskrivning
om man innan har fått bakgrunden klar för sig. Se så är den ju
mycket trevligare att "läsa", så att säga. :-)

> Det var ju till exempel orsaken till att man i MPLAB-X numera måste skriva in konfigurationsbitarna i koden...

Jo, fast man kan välja "Configuration bits" och ställa in det med drop-down listor.
Man får även en förklarande text direkt till varje val. Sedan trycker man "generate code"
och klipper in det i sin egen källkod. Det är i princip samma sak som i gamla MPLAB,
fast man måste lägag det i källkoden. Och ja, det är bättre så här. :-)

Och när det gäller konfiguratorn som sådan, så sker ju inget i det fördolda.
All kod är i klartext och det går utmärkt att se vad som görs. Till skillnad
från då man t.ex använder färdiga funktioner i MikroC (eller i en Arduino).
Där är det betydligt svårare att leta reda på detaljfunktionen. Här är
all automat genererad kod en del av själva projektet.
Användarvisningsbild
dubbear
Inlägg: 328
Blev medlem: 7 april 2010, 23:59:24
Ort: Göteborg
Kontakt:

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av dubbear »

TomasL skrev:Är motstånder till dylika hjälpmedel, framförallt för nybörjare, risken är att användaren inte riktigt vet vad han håller på med.
Det var ju till exempel orsaken till att man i MPLAB-X numera måste skriva in konfigurationsbitarna i koden, istället för som i gamla MPLAB, den generade det automatiskt.
Jag förstår vad TimasL säger.
Men om man följer ett macro så får man precis vad det gör.

Kod: Markera allt

#define Rear_Indoctor_Feed_SetHigh()    do { LATC4 = 1; } while(0)
Och härifrån kan man söka på LATC4 i databladet och få sin förståelse för vad som händer.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av TomasL »

Makron borde vara förbjudna, och är det egentligen.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av sodjan »

Märkligt kommentar. Makro hantering är centrala
delar i många olika programeringsspråk. Och vad
är det som "egentligen" är förbjudet?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Har någon testat Code Configuration Plug-In för MPLAB® X

Inlägg av TomasL »

Makron är en av de främsta källorna till buggar i kod, om man tittar på de kvalitetsnormer och standarder som finns, till exempelvis MISRA, så är FunktionsMacron i princip förbjudna.
Skriv svar