PIC Programmierung (18F2455)

Software und Quellcodes für Microcontroller

Software und Quellcodes für Microcontroller

Moderator: Moderatorengruppe

PIC Programmierung (18F2455)

Neuer Beitragvon mf01 am Freitag 10. März 2006, 12:58

Hallo,
Für ein Projekt in der Schule müssen wir einen PIC progframmieren.
Jedoch kennen wir uns mit der PIC Programmierung kaum aus und so
funktioniert unser erstes Programm nicht. Vielleicht könnte einer von
euch das Programm ansehen und uns helfen es lauffähig zu bekommen.
Wir programmieren mit MPLAB 7.31 und dem C18 Compiler (MCC18).
Eventuell liegt der Fehler auch an Einstellungen die man im Programm
vornehmen muss.
Ich hoffe, ihr könnt uns helfen.
Sie haben keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
mf01
Threadstarter
18527
 
Beiträge: 1
Registriert: Freitag 10. März 2006, 12:53

Neuer Beitragvon Haroeris am Montag 27. August 2007, 12:34

Den Quellcode zu ordnen sollte deine erste Aufgabe sein!

Pic Infos: http://www.sprut.de

mfg
Das Leben ist kein Spiel, aber die Graphik ist SAU geil!!!!!
http://netwars.no-ip.org LAN
Benutzeravatar
Haroeris
28467
Bronze Mitglied
 
Beiträge: 106
Registriert: Donnerstag 14. September 2006, 21:28
Wohnort: nahe regensburg

Neuer Beitragvon Master-Jimmy am Montag 27. August 2007, 17:03

Es sieht aus, als würde das Programm, während Akkus eingelegt sind, stets nur folgende Anweisung ausführen:
Code: Alles auswählen
if(PORTBbits.RB0==1)
{
         PORTAbits.RA0=1;   /* Ladegerät eingeschalten */
}

Die Anweisungen im "Else-Teil" werden nur ausgeführt wenn das Gerät auf Standby ist, oder?

Ich habe ausserdem den Code mal etwas umformatiert, so dass er mir einigermassen leserlich vorkommt:

Code: Alles auswählen
#include <p18f2455.h>

#pragma config WDT = OFF


int main(void)
{
   int         index=0;                                         /* Index des Arrays */
   const int   zuw_tab[16]={0,1,0,2,0,0,0,3,0,0,0,0,0,0,0,4};   /* Zuweisungstabelle */

   TRISB=0xFF;   /* PortB-->Eingänge */
   TRISA=0x00;   /* PortA-->Ausgänge */
   TRISC=0x00;   /* PortC-->Ausgänge */
   PORTA=0x00;
   PORTC=0x00;

   while(1)
   {
      if(PORTBbits.RB0==1)
      {
         PORTAbits.RA0=1;   /* Ladegerät eingeschalten */
      }
      else
      {
         index=(((!(PORTBbits.RB4))*1) + ((!(PORTBbits.RB5))*2) + ((!(PORTCbits.RC0))*4) + ((!(PORTCbits.RC1))*8));

         PORTAbits.RA0=0;      /* Ladegerät ausschalten */

         if(PORTBbits.RB1==1)
         {
            /* Strom-1 eingestellt */
            PORTAbits.RA5=1;
            PORTCbits.RC0=0;
            PORTCbits.RC1=0;   
         }
         if(PORTBbits.RB2==1)
         {
            /* Strom-2 eingestellt */
            PORTAbits.RA5=0;
            PORTCbits.RC0=1;
            PORTCbits.RC1=0;   
         }
         if(PORTBbits.RB3==1)
         {
            /* Strom-3 eingestellt */
            PORTAbits.RA5=0;
            PORTCbits.RC0=0;
            PORTCbits.RC1=1;   
         }

         switch(zuw_tab[index])
         {
            case 1:
            {
               /* 1 Akku eingelegt */
               PORTAbits.RA4=1;
               PORTAbits.RA3=0;
               PORTAbits.RA2=0;
               PORTAbits.RA1=0;
               break;
            }
            case 2:
            {
               /* 2 Akkus eingelegt */
               PORTAbits.RA4=0;
               PORTAbits.RA3=1;
               PORTAbits.RA2=0;
               PORTAbits.RA1=0;
               break;
            }
            case 3:
            {
               /* 3 Akkus eingelegt */
               PORTAbits.RA4=0;
               PORTAbits.RA3=0;
               PORTAbits.RA2=1;
               PORTAbits.RA1=0;
               break;
            }
            case 4:
            {
               /* 4 Akkus eingelegt */
               PORTAbits.RA4=0;
               PORTAbits.RA3=0;
               PORTAbits.RA2=0;
               PORTAbits.RA1=1;
               break;
            }
            default:
            {
               /* Fehler */
               return -1;
            }
         }
      }
   }   
}
Benutzeravatar
Master-Jimmy
28475
Titanium Mitlgied
 
Beiträge: 401
Registriert: Mittwoch 11. April 2007, 10:21
Postleitzahl: 00000
Land: not selected


Zurück zu Software

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste