Theia 奇怪的问题
我有一个包含由 main 调用的函数的程序。
如果添加该函数的注释、则一切都正常:
如果没有为该函数添加注释、Theia 不会显示我保留在 main:
我认为我是这样、因为它显示它暂停了。
(ETA:我有一个时间的魔鬼让两个图像都进入了!)
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Theia 奇怪的问题
我有一个包含由 main 调用的函数的程序。
如果添加该函数的注释、则一切都正常:
如果没有为该函数添加注释、Theia 不会显示我保留在 main:
我认为我是这样、因为它显示它暂停了。
(ETA:我有一个时间的魔鬼让两个图像都进入了!)
Unknown 说:我假设我是这样的,因为它显示它暂停了。
您是否可以展开呼叫堆栈以确认?
(ETA:我有一个时间的恶魔获得两个图像!)
您应该能够将图像从本地 PC 拖放到编辑/回复字段中。 这是您尝试的结果吗?
如果添加该函数的注释、则一切都正常:
如果没有为该函数添加注释、Theia 不会显示我保留在 main:
[/报价]什么是函数(我在屏幕截图中没有看到它)? 您能提供一个小型测试用例吗?
谢谢
小
我终于做到了这一点,首先我使用的是"插入图像"对话框,它一直在用以前的图像替换图像。
这实际上是我通常这样做的。 但对于多个图像、您必须一次执行一个操作。 如果您在点击"确定"之前再次按上载、它只会替换图像。
我不能做一个小的测试用例,每次我做,它使问题消失。 我可以压缩并发布该项目。
FWiw、这里的函数是:
void DoKey(int key) { uint32_t keystate; uint32_t notkeystate; // Note Pressed/Released only changes *after* the debounce period // Now that the serial commands are out of the way, check the keys // Check one key at a time // First turn "on" the column DL_GPIO_clearPins(GPIO_KEYBOARD_PORT, KeyStuff[key].col); keystate = DL_GPIO_readPins(GPIO_KEYBOARD_PORT, KeyStuff[key].row); notkeystate = !keystate; if (KeyStuff[key].debounce == 0) { // We are idle, did we get a change of state? if (KeyStuff[key].pressed == RELEASED) { // Currently not pressed if (!keystate) { // We are pressed KeyStuff[key].debounce = GetMillis(); } } else { // Currently pressed if (keystate) { // We are released KeyStuff[key].debounce = GetMillis(); } } } else { // In a debounce period if ((GetMillis() - KeyStuff[key].debounce) > BOUNCE_TICKS) { KeyStuff[key].debounce = 0; if (!keystate) { // We are Pressed KeyStuff[key].pressed = PRESSED; switch (key) { case 0: // Up Fast if (EchoState == true) { StartSerialTX("key0 Pressed\r\n"); } // SetSpeed(FASTSPEED); // Direction(UPDIR); // GoForever(); break; case 1: // Goto Mark if (EchoState == true) { StartSerialTX("key1 Pressed\r\n"); } // SetSpeed(FASTSPEED); // GoPosition(Mark[CurrentMark]); // DisplayPos(); break; case 2: // Down Fast if (EchoState == true) { StartSerialTX("key2 Pressed\r\n"); } // SetSpeed(FASTSPEED); // Direction(DWNDIR); // GoForever(); break; case 3: // Up Slow if (EchoState == true) { StartSerialTX("key3 Pressed\r\n"); } // SetSpeed(SLOWSPEED); // Direction(UPDIR); // GoForever(); break; case 4: // Change current mark if (EchoState == true) { StartSerialTX("key4 Pressed\r\n"); } // CurrentMark++; // CurrentMark = (CurrentMark > 2) ? (0) : (CurrentMark); // DisplayMark(); break; case 5: // Down Slow if (EchoState == true) { StartSerialTX("key5 Pressed\r\n"); } // SetSpeed(SLOWSPEED); // Direction(DWNDIR); // GoForever(); break; case 6: // Goto zero if (EchoState == true) { StartSerialTX("key6 Pressed\r\n"); } // SetSpeed(FASTSPEED); // GoPosition(0); // DisplayPos(); break; case 7: // Set Current Mark if (EchoState == true) { StartSerialTX("key7 Pressed\r\n"); } // Mark[CurrentMark] = GetPosition(); // DisplayMark(); break; case 8: // Set Zero if (EchoState == true) { StartSerialTX("key8 Pressed\r\n"); } // Zero(); // DisplayPos(); break; } } else { // We are released KeyStuff[key].pressed = RELEASED; // On release switch (key) { case 0: // Up Fast if (EchoState == true) { StartSerialTX("key0 Released\r\n"); } // Stop(); // DisplayPos(); break; case 1: // Goto Mark if (EchoState == true) { StartSerialTX("key1 Released\r\n"); } break; case 2: // Down Fast if (EchoState == true) { StartSerialTX("key2 Released\r\n"); } // Stop(); // DisplayPos(); break; case 3: // Up Slow if (EchoState == true) { StartSerialTX("key3 Released\r\n"); } // Stop(); // DisplayPos(); break; case 4: // Change Mark if (EchoState == true) { StartSerialTX("key4 Released\r\n"); } break; case 5: // Down Slow if (EchoState == true) { StartSerialTX("key5 Released\r\n"); } // Stop(); // DisplayPos(); break; case 6: // Goto Zero if (EchoState == true) { StartSerialTX("key6 Released\r\n"); } break; case 7: // Set Mark if (EchoState == true) { StartSerialTX("key7 Released\r\n"); } break; case 8: // Set Zero if (EchoState == true) { StartSerialTX("key8 Released\r\n"); } break; } // case } // if } // if } // if keybounce = 0 DL_GPIO_setPins(GPIO_KEYBOARD_PORT, KeyStuff[key].col); }
如果我删除正文或注释掉、问题就会消失。
Keith 好、我不想打断 Ki 的调试讨论、但您可能会发现下面的常见问题解答很有用- Jim