Entwicklungsboard Easy PIC v7 (PIC18F45K22)

Gast
Das klingt nach Kaffeesatz und Glaskugel!

Welchen Interrupt willst Du benutzen (müssen einzeln für jede Periferie 
eingeschaltet werden) welche Programierspache, was soll die ISR tun etc.

fragen über fragen...


mfG
Michael
Gast
Guten Abend,

ich möchte folgendes Programm auf meinem Easy PIC v7 (PIC18F45K22) zum 
laufen bringen!?

Das folgende Programm ist für den PIC18F4550 geschrieben.
1
#include <p18f4550.h>
2
#include <portb.h>
3
#include <timers.h>
4
#include <delays.h>
5

6
/* low voltage programming off*/
7
#pragma config LVP = OFF
8
/* wathdog timer off*/
9
#pragma config WDT = OFF
10
/* portb komplett digital */
11
#pragma config PBADEN = OFF
12
#pragma config DEBUG = ON
13

14
void isr_high();
15
void isr_low();
16

17
#pragma code high_vector= 0x08
18
 void high_isr (void){
19
  _asm
20
    goto isr_high
21
  _endasm
22
}
23
#pragma code
24

25
#pragma code low_vector= 0x18
26
 void low_isr (void){
27
  _asm
28
    goto isr_low
29
  _endasm
30
}
31
#pragma code
32

33
#pragma interrupt isr_high  
34
void isr_high(){
35
  if(INTCONbits.INT0IF== 1){
36
    INTCONbits.INT0IF= 0;
37
    PORTD= 0x0F;
38
    Delay10KTCYx(255);
39
  }
40
}
41

42
#pragma interruptlow isr_low
43
void isr_low(){
44
  static unsigned char counter= 0;
45
  if(INTCONbits.TMR0IF== 1){
46
    INTCONbits.TMR0IF= 0;
47
    if(counter %2)
48
      PORTD= 0x30;
49
    else{
50
      PORTD= 0xC0;
51
      counter= 0;
52
    }
53
    counter++;
54
  }
55
}
56

57
void main(){
58
  static unsigned char counter= 0;
59
  TRISD= 0x00;
60
  TRISC= 0x00;
61
  TRISB= 0x01;  
62
  PORTD= 0x00;
63
  PORTC= 0x01;
64

65
  RCONbits.IPEN= 1; /*enable low interrupts generally*/
66
  INTCON2bits.TMR0IP= 0;  /*timer0 auf low int*/
67
   INTCONbits.PEIE = 1; // Enable Peripheral interrupt
68
  INTCONbits.GIEL = 1; // Enble Global interrupt low
69
  INTCONbits.GIEH = 1; // Enble Global interrupt high
70

71
  OpenTimer0(TIMER_INT_ON & T0_SOURCE_INT & T0_16BIT & T0_PS_1_128);
72
  OpenRB0INT(PORTB_CHANGE_INT_ON & FALLING_EDGE_INT &PORTB_PULLUPS_OFF);
73
  WriteTimer0(0);
74

75
  while(1){
76
    if(counter %2)
77
      PORTC= 0xF0;
78
    else{
79
      PORTC= 0x0F;
80
      counter= 0;
81
    }
82
    Delay10KTCYx(255);
83
    counter++;
84
  }
85
}
Gast
Geht der hier nicht in den DEBUG Modus ?
#pragma config DEBUG = ON

Nimm die ganzen #pragma raus und
stell es im Compilerprogramm ein.

PROJECT/EDIT PROJEKCT

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.