mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmel 89C51CC03CA mit Atisp.dll programmieren


Autor: 2takt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich programmiere unter Delphi ein Tool zum automatisierten Programmieren 
mehrerer 89C51 Controller. Dazu benutze ich die Atisp.dll, auf die auch 
FLIP aufsetzt. Allerdings habe ich folgendes Problem: sobald ein 
Controller programmiert ist, ist der CAN Port blockiert, obwohl 
ispClosePort und ispCancel erfolgreich aufgerufen wurden. Danach kann 
ich zwar ispInit aufrufen (gibt auch true zurück), alle anderen 
Funktionen (z.B. ispSelectDevice od. ispSelectCommHardware) werden aber 
mit false beendet. Hat jemand vielleicht das gleiche Problem gehabt, 
oder weiss eine Lösung?

MfG 2takt

Autor: 2takt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich programmiere unter Delphi ein Tool zum automatisierten Programmieren
mehrerer 89C51 Controller. Dazu benutze ich die Atisp.dll, auf die auch
FLIP aufsetzt. Allerdings habe ich folgendes Problem: sobald ein
Controller programmiert ist, ist der CAN Port blockiert, obwohl
ispClosePort und ispCancel erfolgreich aufgerufen wurden. Danach kann
ich zwar ispInit aufrufen (gibt auch true zurück), alle anderen
Funktionen (z.B. ispSelectDevice od. ispSelectCommHardware) werden aber
mit false beendet. Hat jemand vielleicht das gleiche Problem gehabt,
oder weiss eine Lösung?

MfG 2takt

Autor: softwareservice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hatte das gleiche Problem. Meine Lösung:
Nur "ispClosePort" aufrufen, und nicht "ispCancel". Dann klappt's 
mehrfach hintereinander mit "ispInit" etc...

Is' komisch, ja. Funktioniert aber. Hope this helps...


Bye
Alexander

Autor: Matthias 2000 (zeras)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte dies auch programmieren, bekomme aber bei ispSelectDevice 
immer false zurück. IspInit kommt ist aber true.Die Funktion habe ich 
wie folgt deklariert:


function ispSelectDevice(device:LongInt):boolean;
stdcall; external 'AtJniIsp.dll';

Aufruf:

if ispInit then begin
    Memo1.Lines.Add('Init OK');
  end
  else begin
    Memo1.Lines.Add('Init failed');
    Exit;
  end;

  dev:=integer(AT89C51CC03);
  if ispSelectDevice(dev) then begin
    Memo1.Lines.Add('Device select OK');
  end
  else begin
    Memo1.Lines.Add('Device select failed');
    Exit;
  end;

Hat jemand ein Beispielprogramm, welches schon läuft?

Autor: Matthias 2000 (zeras)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da es offensichtlich ein C DLL ist, muss man nicht stdcall, sondern 
cdecl nehmen. Damit geht es nun:

function ispSelectDevice(device:LongInt):Word; //boolean;
cdecl; external 'AtIsp.dll';


Nun macht aber der Aufruf Probleme:
status := ispOpenCanPort(250, 0, 1, 1, 0, 115200);

function ispOpenCanPort(bitrate: Longword; pTYpe: Byte; port:word; 
channel:Byte = 1; CRIS: Byte =0; baudrate:LongWord=115200):LongWord;
cdecl; external 'AtIsp.dll';

Am Ende des Aufrufes kommt dann immer Zugriff bei Adresse xxxxxx, 
Schreiben bei Adresse 0

Vielleicht soll ich aber in ein Delphiforum wechseln, da aber hier schon 
Experten sind, die das schon gelöst haben, wollte ich hier mal anfragen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.