E-LAB Computers
 

Beautifier mag kein PCINT ....

jomixl
Benutzer
Avatar
Geschlecht:
Beiträge: 234
Dabei seit: 02 / 2008
Betreff:

Beautifier mag kein PCINT ....

 · 
Gepostet: 16.02.2017 - 16:08 Uhr  ·  #1
Hallo Rolf,
hab ein kleines Programm angehängt:

wenn ich die PortChangeInterrupt-Routinen richtig benenne funktioniert der Beautyfier
nicht mehr. Vergebe ich andere Namen (ohne Interrupt ?) geht alles wieder.

Hab versucht das Problem einzukreisen, komme aber jetzt nicht mehr weiter.

Gruß Joachim
Anhänge an diesem Beitrag
program IRFB;

{$NOSHADOW}
{ $WG} {global Warnings off}

Device = mega88PA, VCC = 3;
{ $BOOTRST $00C00} {Reset Jump to $00C00}

define_fuses
// Override_Fuses;
NoteBook = A;
COMport = USB;
LockBits0 = [];
FuseBits0 = [CKDIV8, CKSEL3, CKSEL2, CKSEL0, SUT1, SUT0];
FuseBits1 = [BODLEVEL0];
FuseBits2 = [];

import SysTick, RC5Txport;
from System import;


define
ProcClock = 1000000; {Hertz}
SysTick = 10; {msec}
StackSize = $0032, iData;
FrameSize = $0032, iData;
RC5Txport = positive; {pulse polarity}
RC5mode = rc_6bit; {command bit count}

implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

type


{--------------------------------------------------------------}
{ Const Declarations }
const
txadr : byte = 0;
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var
ledx[@portB, 5] : bit;

{--------------------------------------------------------------}
{ functions }
procedure Init_Ports;
begin
ddrb:= %00100000;
portB:= %00000000;

ddrc:= 0;
portC:= %0111;

ddrd:= 0;
portD:= %11111111;
end;


procedure Init_PortChangeInt;
begin
pcmsk1:= %00000111; // Tasten an PortC
pcmsk2:= %11111111; // Tasten an PortD
pcicr:= %0110; // enable PCint 1+2
end;

// Taste an PortD gedrückt;
procedure xpcint2;
//procedure interrupt pcint2;
var
key : byte;
begin
if (PinC and %0111) = %0111 then
key:= pinD;
case key of
%11111110 :
SendRC5(txadr, 0); // Taste 0
|
%11111101 :
SendRC5(txadr, 1); // Taste 1
|
%11111011 :
SendRC5(txadr, 2);// Taste 2
|
%11110111 :
SendRC5(txadr, 3); // Taste 3
|
%11101111 :
Dateiname: irfb.PAS
Dateigröße: 3.27 KB
Titel:
Heruntergeladen: 212
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 26
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Beautifier mag kein PCINT ....

 · 
Gepostet: 16.02.2017 - 16:37 Uhr  ·  #2
Hallo,

procedure interrupt pcint1;
was ist das denn für eine Konstruktion? 😠

rolf
jomixl
Benutzer
Avatar
Geschlecht:
Beiträge: 234
Dabei seit: 02 / 2008
Betreff:

Re: Beautifier mag kein PCINT ....

 · 
Gepostet: 16.02.2017 - 18:53 Uhr  ·  #3
Hallo Rolf,
das soll ein Pin Change Interrupt sein.
Was ist daran so falsch?
Der Compiler konnte damit was anfangen.

Im Manual steht auch nichts davon dass eine gemeinsame Interrupt
-Routine für die 8 Pins pro Port nicht geht.

Gruß Joachim
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 26
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Beautifier mag kein PCINT ....

 · 
Gepostet: 16.02.2017 - 21:37 Uhr  ·  #4
Procedure und interrupt in einem statement ????
Entweder ist das eine Procedure oder ein Interrupt.
Beides zusammen macht keinen Sinn auch wenn der Compiler nicht meckert.
Der Beautifier fällt ja offensichtlich auf die Schnauze.

rolf
jomixl
Benutzer
Avatar
Geschlecht:
Beiträge: 234
Dabei seit: 02 / 2008
Betreff:

Re: Beautifier mag kein PCINT ....

 · 
Gepostet: 17.02.2017 - 12:48 Uhr  ·  #5
danke für den tip .....

joachim
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Thema

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.