Simulator Probleme

  • 1
  • 2
  • Page 1 of 2
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 66
Posts: 755
Registered: 06 / 2013
Subject:

Simulator Probleme

 · 
Posted: 29.07.2019 - 17:46  ·  #1
Hallo,
auf einmal kann ich mein großes Projekt nicht mehr im Simulator testen.
Gibts da einen schalter ?

Im Simulator gehts gehts mit F7 nur in drei Zeilen
015BB6 nach 015BB8 nach 015BB9
und wieder zurück nach 015BB6

Auch wenn ich F9 drücke passiert nichts.

jmd eine Idee ?

Gruß Frank
You must be logged in or your permissions are to low to see this Attachment(s).
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Simulator Probleme

 · 
Posted: 29.07.2019 - 18:07  ·  #2
Kein SIM problem !!!
Das Programm läuft in einer loop und wartet drauf dass sich im IO 51h was tut ;-)
Rolf
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 66
Posts: 755
Registered: 06 / 2013
Subject:

Re: Simulator Probleme

 · 
Posted: 29.07.2019 - 18:11  ·  #3
Hallo Rolf, in allen anderen Projekte sehe ich wenn ich das Programm durch steppe
das er als erstes in InitPorts geht und ich durch InitPorts steppen kann.
Und dann gehts weiter nach pwm... usw.
Aber der Simulator macht ja gar nichts.

Code

{ Main Program }
{$IDATA}
begin
  InitPorts;
  pwm:= 255;
  EnableInts($87);



PS.
Ich bin doch noch in keiner loop endloop; drin

Gruß Frank
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: Simulator Probleme

 · 
Posted: 29.07.2019 - 21:34  ·  #4
Ich würde im .lst File nachgucken, wozu der Code gehört.
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 66
Posts: 755
Registered: 06 / 2013
Subject:

Re: Simulator Probleme

 · 
Posted: 30.07.2019 - 06:02  ·  #5
Moin,

ja ich sehe es jetzt
Code

106751 15BB6                                   _USB32Ready_:
106752 15BB6   91100051                        LDS       _ACCA, OSCSTATUS
106753 15BB8       7012                        ANDI      _ACCA, 002h
106754 15BB9       F3E1                        BREQ      _USB32Ready_


Mein Programm wartet auf USB, nur wie bekomme ich es hin das ich mit dem
Simulator Arbeiten kann ?

Gruß Frank
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1340
Registered: 02 / 2009
Subject:

Re: Simulator Probleme

 · 
Posted: 30.07.2019 - 10:26  ·  #6
Quote by TheBeginner

...
Mein Programm wartet auf USB, nur wie bekomme ich es hin das ich mit dem
Simulator Arbeiten kann ?

Gruß Frank

Hallo Frank,

bei mir macht er da keine Probleme, ich mache die ganzen INITs am Anfang und gehe dann in den LOOP:

Code
{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin
 WDCheck; // WD TRriggern wenn eingeschaltet
  USB_SetControlCallback(@myUSB_ControlRequest); // optional, if you need it!
  USB_Init(@RxBuf);        // Attach USB and connect RxBuf for FIRST RX INT


InitPorts;
// Beim booten ServiceTaste = WatchDog OFF
if HxIN_SERVTAST then BSysWDOff:= TRUE; ENDIF;

 EnableInts($87);
  InitCfg; // beim Start 1mal ausführen ansonsten nur beim Ändern
   WDTrig; // WD TRriggern wenn eingeschaltet

// TEST RTC abschalten
LOCK( MAIN_PROC );
 if Init_MCP_RTC then
  DebugOut( 'RTC OK');
   Read_RTC;
    mDelay(100);
 else
  DebugOut( 'RTC FAIL');
 endif;
  WDTrig; // WD TRriggern wenn eingeschaltet
UNLOCK( MAIN_PROC );

mDelay(30);
 I2CInit; // Init der I2C Bausteine
  WDTrig; // WD TRriggern wenn eingeschaltet

// Übernehme Versionsinformationen
CompYear   :=COMPILEYEAR;
 CompMonth  :=COMPILEMONTH;
  CompDay    :=COMPILEDAY;
   CompHour   :=COMPILEHOUR;
    CompMinute :=COMPILEMINUTE;
     ProjBuild  :=PROJECTBUILD;
      ProjVer    :=1;
WDTrig; // WD TRriggern wenn eingeschaltet

DebugOut( 'SysStart');

//-------------------------------------------
// Clear Memory..
 InitMem;
  WDTrig; // WD Triggern wenn eingeschaltet

sdAktive();   // Timer für SD Anzeige LCD setzen
  bMMCok:= F16_DiskInit; // always the very fist step
   if bMMCok then DebugOut('SD init ok!'); else DebugOut('SD init fail!'); endif;
    WDTrig; // WD Triggern wenn eingeschaltet

if bMMCok then
 sdAktive();   // Timer für SD Anzeige LCD setzen
  bMMCok:= F16_DiskReset;                             // SD Disk Reset
  if bMMCok then DebugOut('SD Reset ok!'); else DebugOut('SD Reset fail!'); endif;
endif;
 WDTrig; // WD Trriggern wenn eingeschaltet

if bMMCok then
  sdAktive();   // Timer für SD Anzeige LCD setzen
  if F16_CheckDisk then                             // ist ein gültiges FAT16 vorhanden,
    SizeMBsd := F16_GetDiskSize;                    // dann die Daten holen
     SizeMBsdFree := F16_GetDiskFree;
      SizeMBsdUsed := F16_GetDiskUsed;
       WDTrig; // WD Trriggern wenn eingeschaltet
  if bMMCok then DebugOut('SD CheckDisk ok!'); else DebugOut('SD CheckDisk fail!'); endif;

   WDTrig; // WD Trriggern wenn eingeschaltet
    
  endif;
endif;

// WizNet LAN INIT
 wzHWReset;
  LanInit;
WDTrig; // WD TRriggern wenn eingeschaltet

// Init Display...
 LCDInit;

// Lösche Pipes ZKS
 PipeFlush(RxBufferC0);
  PipeFlush(TxBufferC0);

// PinCodeClear
 ZKSUserPinCodeClear;

 WDTrig; // WD TRriggern wenn eingeschaltet

// Setze Logeintrag für Boottime
strBootTime := RTCZeitBlock.strdatum+' '+RTCZeitBlock.strzeit;
 Save_Log('Boot...');

/////////////////////////////////////////////
//  LOOP START
//
 loop   // Main LOOP
   WDTrig;  // WD TRriggern wenn eingeschaltet
....



Thorsten
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1372
Registered: 03 / 2005
Subject:

Re: Simulator Probleme

 · 
Posted: 30.07.2019 - 11:39  ·  #7
Hello Frank.

Are you using the optimiser? That can make the code running in the simulator seem strange in the simulator, particularly with the common exit point optimisation. Parts of the optimiser can be disabled to help with this if you cannot compile without optimising.
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 66
Posts: 755
Registered: 06 / 2013
Subject:

Re: Simulator Probleme

 · 
Posted: 30.07.2019 - 13:03  ·  #8
Hallo,
@Merlin
I do not use Optimiser.


Ich poste mal meinen Code.
Was ich nur nicht verstehe, der Code geht im Xmega 100%
USB Senden / Empfangen ok
Nur der Simulator will nicht

Gruß Frank




Code
  

//==============================================================================
procedure MainLoop_USB;
var
  ch   : char; 
  st   : string[20];
  st1  : string[1];
  bb  : byte;
begin

  loop
  
  
    Check_TastaSerielle;
    Case Tasta_byt of
        $1B  :  TFT_Str:= '';    Sende_an_TFT($1B);                            |
        $C1  :  TFT_Str:= '';    Sende_an_TFT($C1); __Handfahrt;               |
        $C2  :  TFT_Str:= '';    Sende_an_TFT($C2); __page_MMC;                |
        $C3  :  TFT_Str:= '';    Sende_an_TFT($C3); __page_Excellon;           |
        $C4  :  TFT_Str:= '';    Sende_an_TFT($C4); __WFahrt;                  |

        $C5  :  TFT_Str:= '';    Sende_an_TFT($C5); Sende_page_Seite1;         |
        $C6  :  TFT_Str:= '';    Sende_an_TFT($C6); Sende_Rampen_werte;        |
        $C7  :  TFT_Str:= '';    Sende_an_TFT($C7); __page_strom;              |
        $C8  :  TFT_Str:= '';    Sende_an_TFT($C8); __RefFahrt;                |

        $67  :  __FahrtEingabe;                                                |
    endcase;
    

    if USB_Con = true then
      if USBdataAvail then
        HostCmd:= RxCmd;
        ch:= HostCmd.cmd;
        case HostCmd.typ of
          CTRLcmd:
            //ok
            if ch = 'A' then
                   mdelay(1);
                   eepromDatenSendenAnHost;
            endif;
            if ch = 'B' then
                   mdelay(1);
                   eepromDaten_Aendern;
            endif;


            if ch = 'Z' then
                   mdelay(1);
                   SendeTestBlock;
            endif;
           
                 |
        else
        //  TXchar('?');
        endcase;
      endif;
    endif;

  endloop;
end;







{--------------------------------------------------------------}
//  User function to receive EP0 ControlRequests from Host
{$VALIDATE $}
{-----------------------------------------------------------------------------}
function xUSB_VendorRequest(const Req: tUSB_SetupReq): boolean;
var
  ret   : boolean;
  b     : byte;
begin
  ret:= false;
  case Req.bmRequestType of
    $C0:
         case Req.bRequest of    // Device to Host

         endcase;
       |
    $40:
         case Req.bRequest of    // Host to Device
           0:
            |
           1:
              if Req.wLength > 0 then
                return(true);
              else
                  //EP1 stall
                if Req.wLength = 0 then
                  xUSB_Detach;
                  mDelay(100);
                  HardWareReset;
                  return(true);
                endif;
              endif;
            |
         else
           ret:= true;
         endcase;
       |
  endcase;
  return(ret);
end;






//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//  USB INIT
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Procedure USBInit;
Begin
  xUSB_UserVendorRequest(@xUSB_VendorRequest);
  xUSB_Enable;

  USBdataAvail:= false;
  HostFailed:= false;
  xUSB_Attach;
  
  while ( not UsbDriverConnect) do
    mDelay(300);
  endwhile;                                             // wait for Windows Setconfiguration
  xUSB_RXsetBuffer(1, @USB_Rx_Receive, @RXbuf, 512);   // Link RX Event
  USB_Con:= true;
end;






{--------------------------------------------------------------} 
{ Main Program } 

{$IDATA}
begin
  InitPorts;
  EnableInts($87);
  USB_Con:= false;

  if USBvBUS.USBvBUSpin = true then
    USBInit;
  endif;
  loop
     MainLoop_USB;
  endloop;
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   140   154 · Page-Gen-Time: 0.026095s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI