closed

Loginbox

Please enter your username and password into the following fields to log in.


  • Username:
  • Password:
  •  
  • Auto log in on every visit.


  •  

Simulator Probleme



TheBeginner offline
Benutzer
Avatar
Gender: n/a
Location: GERMANY  Wunsiedel Bayern
Age: 62
Posts: 467
Registered: 06 / 2013
Private message
Subject: Simulator Probleme  -  Posted: 29.07.2019 - 17:46   -  
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).
------------------------------------------------------------------------
Als Gott mich schuf wollte er angeben.
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5472
Registered: 03 / 2002
Homepage Private message
Subject: Re: Simulator Probleme  -  Posted: 29.07.2019 - 18:07   -  
Kein SIM problem !!!
Das Programm läuft in einer loop und wartet drauf dass sich im IO 51h was tut ;-)
Rolf
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
TheBeginner offline
Benutzer
Avatar
Gender: n/a
Location: GERMANY  Wunsiedel Bayern
Age: 62
Posts: 467
Registered: 06 / 2013
Private message
Subject: Re: Simulator Probleme  -  Posted: 29.07.2019 - 18:11   -  
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
------------------------------------------------------------------------
Als Gott mich schuf wollte er angeben.
This post has been edited 1-times. Last edit: 29.07.2019 - 18:12 by TheBeginner.
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 38
Posts: 236
Registered: 07 / 2013
Private message
Subject: Re: Simulator Probleme  -  Posted: 29.07.2019 - 21:34   -  
Ich würde im .lst File nachgucken, wozu der Code gehört.
go down go up
TheBeginner offline
Benutzer
Avatar
Gender: n/a
Location: GERMANY  Wunsiedel Bayern
Age: 62
Posts: 467
Registered: 06 / 2013
Private message
Subject: Re: Simulator Probleme  -  Posted: 30.07.2019 - 06:02   -  
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
------------------------------------------------------------------------
Als Gott mich schuf wollte er angeben.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 48
Posts: 1046
Registered: 02 / 2009
Homepage Private message
Subject: Re: Simulator Probleme  -  Posted: 30.07.2019 - 10:26   -  
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
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
Merlin offline
Schreiberling
Avatar
Gender: male
Location: UNITED KINGDOM 
Age:
Posts: 878
Registered: 03 / 2005
Private message
Subject: Re: Simulator Probleme  -  Posted: 30.07.2019 - 11:39   -  
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.
Merlin.

:magic:

Software is a black art.
go down go up
TheBeginner offline
Benutzer
Avatar
Gender: n/a
Location: GERMANY  Wunsiedel Bayern
Age: 62
Posts: 467
Registered: 06 / 2013
Private message
Subject: Re: Simulator Probleme  -  Posted: 30.07.2019 - 13:03   -  
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;
------------------------------------------------------------------------
Als Gott mich schuf wollte er angeben.
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5472
Registered: 03 / 2002
Homepage Private message
Subject: Re: Simulator Probleme  -  Posted: 30.07.2019 - 21:39   -  
Hallo Frank
USB kann man eigentlich nicht simulieren
Dafür ist das ICE zuständig !!!!
rolf
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
TheBeginner offline
Benutzer
Avatar
Gender: n/a
Location: GERMANY  Wunsiedel Bayern
Age: 62
Posts: 467
Registered: 06 / 2013
Private message
Subject: Re: Simulator Probleme  -  Posted: 31.07.2019 - 05:39   -  
Guten morgen,
@Rolf
Ich habe jetzt USB komplett rausgenommen und siehe da ich kann mit Taste F7
das Programm steppen.

Was ist das ?

Thorsten kann es doch auch mit seinen USB Treiber.
Und ich habe das selbe drin wie Thorsten.


PS. Es ist mir schon klar das ich USB nicht Simulieren kann, aber der Simulator
sollte doch weiter Arbeiten und nicht bei USB stehen bleiben.

Gruß Frank
------------------------------------------------------------------------
Als Gott mich schuf wollte er angeben.
This post has been edited 1-times. Last edit: 31.07.2019 - 05:46 by TheBeginner.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 48
Posts: 1046
Registered: 02 / 2009
Homepage Private message
Subject: Re: Simulator Probleme  -  Posted: 31.07.2019 - 09:55   -  
Quote by TheBeginner

...
Thorsten kann es doch auch mit seinen USB Treiber.
Und ich habe das selbe drin wie Thorsten.


Hallo Frank,

sorry, war mein Fehler! Ich nutze immer dem ICE-Debugger (gleiches Fenster wie der Simulator)

Im Simulator macht er auch immer die die 3 Zeilen. Scheint ein INIT des USB-Ports zu sein und wartet hier scheinbar auf das OK... vom XMEGA das USB-PortInit erfolgreich war. Scheint der der Simulator wohl nicht zu können.

Thorsten
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
TheBeginner offline
Benutzer
Avatar
Gender: n/a
Location: GERMANY  Wunsiedel Bayern
Age: 62
Posts: 467
Registered: 06 / 2013
Private message
Subject: Re: Simulator Probleme  -  Posted: 31.07.2019 - 10:23   -  
Aha ... das ist was anderes, jetzt verstehe icvh es.


Gruß Frank
------------------------------------------------------------------------
Als Gott mich schuf wollte er angeben.
go down go up
miparo offline
Schreiberling
Avatar
Gender: male
Location: GERMANY  Germany
Age: 53
Posts: 682
Registered: 09 / 2007
Private message
Subject: Re: Simulator Probleme  -  Posted: 31.07.2019 - 12:01   -  
Hier müsste Rolf sein System Init etwas überarbeiten und ein paar {$X+} einpflegen damit der SIM da drüber geht. Da wird auf den Clock für den USB gewartet und das funzt im SIM natürlich nicht.

Das kannst du dann auch in deinem Code machen und brauchst den USB nicht entfernen.

Code

{$IDATA}
begin
  InitPorts;
  EnableInts($87);
  USB_Con:= false;
 {$X-}  // Block nicht simulieren
  if USBvBUS.USBvBUSpin = true then
    USBInit;
  endif;
 {$X+} 
  loop
     MainLoop_USB;
  endloop; 


Das kann im File so bleiben, da es auf das Hex File keinen Einfluss hat.

miparo
Kein Support per PN! | No support via PM!
This post has been edited 3-times. Last edit: 31.07.2019 - 12:12 by miparo.
go down go up
 


Registered users in this topic
Currently no registered users in this section

Delete cookies of this forum  •  FAQ / Help  •  Team page  •  Imprint   |  Local time: 14.10.2019 - 13:03