Entwicklungsboard Easy PIC v7 (PIC18F45K22)

Gast #2526951
Lesenswert?
• ▲
▼
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 #2538708
Lesenswert?
• ▲
▼
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
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.