Hallo zusammen, kann mir jemand helfen, um dies alles zu verstehen.
Ich habe daweil sehr wenige erfahrungen mit MPLAB X gemacht und ich
verstehe nicht, was wir hier in der Schule gemacht haben, weil ich krank
war. Ich würde das gerne nachholen.
Kann mir jemand helfen dies alles zu verstehen ??
#include <xc.h>
//#include <pic16f866.h> nicht notwendig ??
//#######################
//## CONFIG1
//#pragma config CONFIG1 = 0x03f4
#pragma config FOSC = INTRC_NOCLKOUT // Oscillator Selection bits
(External RC oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT
is controlled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT
disabled)
#pragma config MCLRE = ON // MCLR Pin Enable bit (MCLR pin
enabled; RA3 input pin disabled)
#pragma config CP = OFF // Code Protection bit
#pragma config CPD = OFF // Data EEPROM Code Protection bit
(Data EEPROM not code-protected)
#pragma config BOREN = ON // Brown-out Reset Enable bits
(Brown-out Reset disabled in hardware and software)
#pragma config IESO = OFF // Internal/External Oscillator
Switchover bit (Oscillator Switchover mode disabled)
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable
(Fail-Safe Clock Monitor disabled)
#pragma config LVP = OFF // Single-Supply ICSP Enable bit
(Single-Supply ICSP enabled)
//## CONFIG2
#pragma config BOR4V = BOR21V // Brown-out Reset Voltage bits
(VBOR set to 2.1 V nominal)
#pragma config WRT = OFF // Table Write Protection bit
//************************
//## Hardware Definitionen
#include "HW_Definition.h"
//************************
//## Funktionen Deklaration
extern void init_pic(void);
extern void set_zahl(char);
extern void wait_xms(int);
extern void start_tmr1_int(void);
extern void start_tmr0_int(void);
extern void start_countdown(void);
extern void reset_countdown(void);
extern void set_alarm(void);
extern void rs232(void);
extern void send_zeichen(char);
extern void convert_time(void);
//************************
//## Meine Variablen
char test @ 0x20; /* * ACHTUNG BUG bei XC Version V1.10 **
im Watch-Fenster wird Variable nicht angezeigt,
obwohl richtig zugeordnet --> XC Update V1.32 = OK
*/
char zeit[4]; // char : Datentyp legt fest, dass die einzelnen
Zeichen eines Speicherbereichs aus je 8 Bits bestehen,
// die je ein darstellbares Zeichen (Buchstabe, Ziffer,
Sonderzeichen) repräsentieren.
char zeit_min=0;
char zeit_sec=0;
char zeit_default_min=1;
char zeit_default_sec=30;
char zeit_startwert_min=0;
char zeit_startwert_sec=0;
char i=0;
int int_count; //
char eingabe[5] = {'0','3',':','1','0'};
int x=4; // Variablentyp, unter dem in einem Programm Variablen
definiert werden
char rs232_active=0;
char alarm=0;
/************************************************
* Achtung anzeigen der Variablen im Watchfenster
Global Variablen --> direkt eingeben
Lokale Variablen --> mit z.B. my_ISR@temp anzeigen lassen
--> name = <funktionsname>@<variablenname>
************************************************/
//###################################################################
//## Main ##
//###################################################################
int main(void) //@ 0x010 mit Adresszuweisung kein ordentliches debugggen
möglich
{
T1CON = 0x00;
init_pic();
init_rs232(); //initalisierung RS232
start_tmr0_int();
start_tmr1_int();
zeit_min = zeit_default_min; //zeit den defaultwert zuweisen
zeit_sec = zeit_default_sec;
while(1) //Endlosschleife
{
//RS232 auslesen
if(rs232_active==1)
{
if(eingabe[0]>57 || eingabe[1]>57 || eingabe[2]!=':' ||
eingabe[3]>53 || eingabe[4]>57)
{
send_error();
eingabe[0]='0';
eingabe[1]='0';
eingabe[2]='0';
eingabe[3]='0';
eingabe[4]='0';
rs232_active=0;
} else {
zeit_min = (((eingabe[4]-48)*10)+(eingabe[3]-48));
zeit_sec = (((eingabe[1]-48)*10)+(eingabe[0]-48)); //umwandeln
in korrekte DEC
rs232_active=0; //ausschalten damit interrupt wieder
aktivieren kann
}//end if else
}
//umbauen in char zeit[] damit auf Display angezeigt wird
convert_time();
if (S1) //beginnt mit countdown
{
rs232_active=0;
zeit_startwert_min = zeit_min; //startwert speichern für
resetfunktion
zeit_startwert_sec = zeit_sec;
start_countdown();
}
}//endwhile
}//Ende Main
Jeanetta Z. schrieb: > Kann mir jemand helfen dies alles zu verstehen ?? Es wird dir kaum einer den kompletten Code Zeile für Zeile erklären. Wenn du konkrete Fragen stellst, werden die auch beantwortet. Jeanetta Z. schrieb: > Ich habe daweil sehr wenige erfahrungen mit MPLAB X gemacht und ich > verstehe nicht, was wir hier in der Schule gemacht haben, weil ich krank > war. Ich würde das gerne nachholen. Was meint denn dein Lehrer dazu?
Jeanetta Z. schrieb: > Kann mir jemand helfen dies alles zu verstehen ?? Du hast vergessen die eigentliche Aufgabe zu schildern, und an welcher Stelle genau Du ein Problem hast.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.