ATmega2560 - Konfiguracja 2x UART
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: ATmega2560 - Konfiguracja 2x UART
Tak się przespałem z tym wszystkim i wpadły mi dwie rzeczy do głowy...
1. Zasilanie, do testów zasilam wszystko z USB laptopa i może Arduino MEGA z ESP nie wyrabia?
2. Bootloadrer Arduino, czy możliwe, że on coś miesza przy przesyłaniu długich stringów?
Wieczorem znów siądę do testów
1. Zasilanie, do testów zasilam wszystko z USB laptopa i może Arduino MEGA z ESP nie wyrabia?
2. Bootloadrer Arduino, czy możliwe, że on coś miesza przy przesyłaniu długich stringów?
Wieczorem znów siądę do testów
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: ATmega2560 - Konfiguracja 2x UART
Kolego policzyłem na palcach i Twoja zmienna Cmd ma teraz 204 znaki. Zadeklarowałeś ją na przynajmniej taką długość? Może jeździsz tam po jakichś innych zmiennych?
Proponuję sobie zmienną Cmd zadeklarować na co najmniej 250, lub więcej, a do kodu dodać dyrektywę "$bigstrings".
Proponuję sobie zmienną Cmd zadeklarować na co najmniej 250, lub więcej, a do kodu dodać dyrektywę "$bigstrings".
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: ATmega2560 - Konfiguracja 2x UART
Bartek, zmienne mają zadeklarowane dokładnie 250 znaków - pisałem wcześniej, że na ATmega328 wszystko działa jak należy.
Skoro to nie ustawienia UART, MEGA, bootloader, kod czy tam zmienne, to zostaje tylko zasilanie wszystkiego - jeszcze dziś zrobię test.
$bigstrings? o tym nie słyszałem
Czy to znaczy, że można używać dłuższych stringów niż 254 znaki?
Skoro to nie ustawienia UART, MEGA, bootloader, kod czy tam zmienne, to zostaje tylko zasilanie wszystkiego - jeszcze dziś zrobię test.
$bigstrings? o tym nie słyszałem
Czy to znaczy, że można używać dłuższych stringów niż 254 znaki?
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: ATmega2560 - Konfiguracja 2x UART
Kilka roboczogodzin poszło w... diabły, a ja dalej w punkcie wyjścia...
Proszę o pomoc bo sam sobie z tym nie poradzę.
Program dla ATmega328 (Arduino UNO) wszytko działa jak należy, ESP co minutę posyła dane
Program dla ATmega2560 (Arduino MEGA) tu nic nie działa jak należy - ESP nie posyła danych (jak go podglądam konwerterem USB-UART to wisi na "WIFI GOT IP") Komunikacja z PC działa super, ale tylko przez minutę od startu, później ESP ma posłać dane. Gdy ESP dostaje "AT+RST" to komunikacja PC-MEGA zamiera
Na moje oko coś jest nie tak z konfiguracją UART, ale za cholerę nie wiem o co chodzi
Próbowałem już przeróżnych ustawień UART i zawsze jest coś nie tak. Zasilanie też zmieniałem, połączenia sprawdzone milion razy. Kod specjalnie okroiłem do minimum aby wykluczyć inne rzeczy, które tam mają działać.
Proszę o pomoc bo sam sobie z tym nie poradzę.
Program dla ATmega328 (Arduino UNO) wszytko działa jak należy, ESP co minutę posyła dane
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m328pdef.dat"
- $crystal = 16000000 'zewnętrzny rezonator kwarcowy 16MHz - standard Arduino
- $hwstack = 64
- $swstack = 16
- $framesize = 64
- Config Submode = New
- '--- UART ---
- Config Com1 = 115200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
- Open "Com1:" For Binary As #1 : Const Esp = 1
- Config Serialin0 = Buffered , Size = 250 , Bytematch = 10
- Config Input = Crlf , Echo = Crlf : Echo Off
- Dim Com1_str As String * 250
- '--- TIMER ---
- Config Timer0 = Timer , Prescale = 1024 , Clear_timer = 1 : Compare0a = 155 '10ms @16MHz/1024
- '--- czas ---
- Dim 100ms As Byte , 1s As Byte , 1m As Byte
- '--- ESP8266 ---
- Dim Esp_nadaje As Byte
- Dim Send_time As Byte
- Dim Cmd As String * 250
- Dim Cmd_len As String * 25
- Dim Lenght As Byte
- Dim State As Byte
- Dim Mem_state As Byte
- Const Startup = 0
- Const Waiting = 1
- Const Send_len = 2
- Const Sending = 3
- '--- obsługa ESP8266 ---
- Sub Esp8266
- Select Case State
- Case Startup
- If Instr(com1_str , "WIFI GOT IP") > 0 Then
- Cmd = "AT+CIPSTART={034}TCP{034},{034}192.168.1.2{034},80"
- Print #esp , Cmd
- Cmd = "GET /receiver.php?key=1234"
- Cmd = Cmd + "&&id=1;11;2;22;3;33"
- Cmd = Cmd + "&type=water;volt;gas;volt;elec;volt"
- Cmd = Cmd + "&value=0.001;1.11;0.01;2.22;0.0005;3.33"
- Cmd = Cmd + "¤t=1;---;2;---;3;---"
- Cmd = Cmd + "&device=ip&name=PiCount_2_"
- Cmd = Cmd + "{032}HTTP/1.1{013}{010}"
- Cmd = Cmd + "Host:{032}192.168.1.2"
- Cmd = Cmd + "{013}{010}{013}{010}"
- Mem_state = State 'zapamiętaj, że zaczynamy
- State = Waiting
- End If
- Case Waiting 'jeśli czekamy na odpowiedź
- Select Case Com1_str
- Case "OK" 'jeśli zobaczymy OK
- Select Case Mem_state
- Case Startup 'Poprzedni był auto-start, więc to pierwszy "OK"
- Mem_state = Send_len
- Lenght = Len(cmd) : Cmd_len = Str(lenght)
- Cmd_len = "AT+CIPSEND=" + Cmd_len
- Print #esp , Cmd_len
- Case Send_len 'drugie „OK”, więc wysyłamy Len danych, które chcemy wysłać
- Print #esp , Cmd
- State = Sending
- Mem_state = Sending 'zapamiętaj, że wysyłamy dane do serwera
- 'do obsługi błędów
- End Select
- Case "ERROR" 'błąd połączenia
- State = Startup : Send_time = 0
- Case "CLOSED" 'połączenie zamknięte
- State = Startup : Send_time = 0
- End Select
- Case Sending 'wysyłka danych
- Select Case Com1_str
- Case "SEND OK" 'wysyłanie powiodło się
- State = Startup : Send_time = 0
- Case "CLOSED" 'połączenie zamknięte
- State = Startup : Send_time = 0
- Case "SEND FAIL" 'wysyłanie nie powiodło się
- State = Startup : Send_time = 0
- End Select
- End Select
- End Sub
- Enable Interrupts
- '**********************
- '*** PROGRAM GŁÓWNY ***
- Do
- If Tifr0.ocf0a = 1 Then 'minęło 10ms - flagę ustawia Timer
- Tifr0.ocf0a = 1 'kasuj flagę
- If 100ms < 9 Then
- Incr 100ms
- Else 'minęło 100ms
- 100ms = 0
- If 1s < 9 Then
- Incr 1s
- Else 'minęła 1s
- 1s = 0
- If 1m < 59 Then
- Incr 1m
- Else 'minęła 1m
- 1m = 0
- Print #esp , "AT+RST" 'budź ESP i ślij dane na serwer
- End If
- End If
- End If
- End If
- If Esp_nadaje = 1 Then
- Esp_nadaje = 0
- Call Esp8266
- End If
- Loop
- '*** KONIEC GŁÓWNEJ PĘTLI ***
- '****************************
- '--- przerwanie UART ---
- Serial0charmatch:
- $asm
- !PUSH R6
- !PUSH R16
- !PUSH R17
- !PUSH R18
- !PUSH R19
- !PUSH R22
- !PUSH R24
- !PUSH R25
- !PUSH R26
- !PUSH R27
- !PUSH R30
- !IN R24, SREG
- !PUSH R24
- $end asm
- $timeout = 3000
- Input #esp , Com1_str
- Clear Serialin0
- Esp_nadaje = 1
- ' Tuned with NoSave Tool 1.10
- $asm
- !POP R24
- !OUT SREG, R24
- !POP R30
- !POP R27
- !POP R26
- !POP R25
- !POP R24
- !POP R22
- !POP R19
- !POP R18
- !POP R17
- !POP R16
- !POP R6
- $end Asm
- Return
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m2560def.dat"
- $crystal = 16000000 'zewnętrzny rezonator kwarcowy 16MHz - standard Arduino
- $hwstack = 64
- $swstack = 16
- $framesize = 64
- Config Submode = New
- '--- UART PC ---
- Config Com1 = 115200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
- Open "Com1:" For Binary As #1 : Const Pc = 1
- Config Serialin0 = Buffered , Size = 250 , Bytematch = 13
- Config Input = Cr , Echo = Cr : Echo Off
- Dim Com1_str As String * 250
- '--- UART ESP ---
- Config Com2 = 115200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
- Open "Com2:" For Binary As #2 : Const Esp = 2
- Config Serialin1 = Buffered , Size = 250 , Bytematch = 10
- Config Input1 = Crlf , Echo = Crlf : Echo Off
- Dim Com2_str As String * 250
- '--- TIMER ---
- Config Timer0 = Timer , Prescale = 1024 , Clear_timer = 1 : Compare0a = 155 '10ms @16MHz/1024
- '--- czas ---
- Dim 100ms As Byte , 1s As Byte , 1m As Byte
- '--- PC ---
- Dim Pc_nadaje As Byte
- Dim Bufor As Byte
- Dim Pc_dane(2) As String * 20
- '--- ESP8266 ---
- Dim Esp_nadaje As Byte
- Dim Send_time As Byte
- Dim Cmd As String * 250
- Dim Cmd_len As String * 25
- Dim Lenght As Byte
- Dim State As Byte
- Dim Mem_state As Byte
- Const Startup = 0
- Const Waiting = 1
- Const Send_len = 2
- Const Sending = 3
- '--- obsługa PC ---
- Sub Pc_uart
- Bufor = Split(com1_str , Pc_dane(1) , " ")
- Select Case Pc_dane(1)
- Case "halo"
- Print #pc , "hej"
- Case "123"
- Print #pc , "abc"
- Case "haha"
- Print #pc , "hi hi"
- Case Else 'jeżeli odebrany znak to żaden z powyższych to wyczyść bufor
- Print #pc , "ehhh... cos poszlo nie tak..."
- Pc_dane(1) = ""
- Pc_dane(2) = ""
- End Select
- 'wyczyść bufor i wyjdź
- Pc_dane(1) = ""
- Pc_dane(2) = ""
- End Sub
- '--- obsługa ESP8266 ---
- Sub Esp_uart
- Select Case State
- Case Startup
- If Instr(com1_str , "WIFI GOT IP") > 0 Then
- Cmd = "AT+CIPSTART={034}TCP{034},{034}192.168.1.2{034},80"
- Print #esp , Cmd
- Cmd = "GET /receiver.php?key=1234"
- Cmd = Cmd + "&&id=1;11;2;22;3;33"
- Cmd = Cmd + "&type=water;volt;gas;volt;elec;volt"
- Cmd = Cmd + "&value=0.001;1.11;0.01;2.22;0.0005;3.33"
- Cmd = Cmd + "¤t=1;---;2;---;3;---"
- Cmd = Cmd + "&device=ip&name=PiCount_2_"
- Cmd = Cmd + "{032}HTTP/1.1{013}{010}"
- Cmd = Cmd + "Host:{032}192.168.1.2"
- Cmd = Cmd + "{013}{010}{013}{010}"
- Mem_state = State 'zapamiętaj, że zaczynamy
- State = Waiting
- End If
- Case Waiting 'jeśli czekamy na odpowiedź
- Select Case Com1_str
- Case "OK" 'jeśli zobaczymy OK
- Select Case Mem_state
- Case Startup 'Poprzedni był auto-start, więc to pierwszy "OK"
- Mem_state = Send_len
- Lenght = Len(cmd) : Cmd_len = Str(lenght)
- Cmd_len = "AT+CIPSEND=" + Cmd_len
- Print #esp , Cmd_len
- Case Send_len 'drugie „OK”, więc wysyłamy Len danych, które chcemy wysłać
- Print #esp , Cmd
- State = Sending
- Mem_state = Sending 'zapamiętaj, że wysyłamy dane do serwera
- 'do obsługi błędów
- End Select
- Case "ERROR" 'błąd połączenia
- State = Startup : Send_time = 0
- Case "CLOSED" 'połączenie zamknięte
- State = Startup : Send_time = 0
- End Select
- Case Sending 'wysyłka danych
- Select Case Com1_str
- Case "SEND OK" 'wysyłanie powiodło się
- State = Startup : Send_time = 0
- Case "CLOSED" 'połączenie zamknięte
- State = Startup : Send_time = 0
- Case "SEND FAIL" 'wysyłanie nie powiodło się
- State = Startup : Send_time = 0
- End Select
- End Select
- End Sub
- Enable Interrupts
- '**********************
- '*** PROGRAM GŁÓWNY ***
- Do
- If Tifr0.ocf0a = 1 Then 'minęło 10ms - flagę ustawia Timer
- Tifr0.ocf0a = 1 'kasuj flagę
- If 100ms < 9 Then
- Incr 100ms
- Else 'minęło 100ms
- 100ms = 0
- If 1s < 9 Then
- Incr 1s
- Else 'minęła 1s
- 1s = 0
- If 1m < 59 Then
- Incr 1m
- Else 'minęła 1m
- 1m = 0
- Print #esp , "AT+RST" 'budź ESP i ślij dane na serwer
- End If
- End If
- End If
- End If
- If Pc_nadaje = 1 Then
- Pc_nadaje = 0
- Call Pc_uart
- End If
- If Esp_nadaje = 1 Then
- Esp_nadaje = 0
- Call Esp_uart
- End If
- Loop
- End
- '*** KONIEC GŁÓWNEJ PĘTLI ***
- '****************************
- '--- przerwanie UART ---
- Serial0charmatch:
- $asm
- !PUSH R6
- !PUSH R16
- !PUSH R17
- !PUSH R18
- !PUSH R19
- !PUSH R22
- !PUSH R24
- !PUSH R25
- !PUSH R26
- !PUSH R27
- !PUSH R30
- !IN R24, SREG
- !PUSH R24
- $end asm
- $timeout = 3000
- Input#pc , Com1_str
- Clear Serialin0
- Pc_nadaje = 1
- ' Tuned with NoSave Tool 1.10
- $asm
- !POP R24
- !OUT SREG, R24
- !POP R30
- !POP R27
- !POP R26
- !POP R25
- !POP R24
- !POP R22
- !POP R19
- !POP R18
- !POP R17
- !POP R16
- !POP R6
- $end Asm
- Return
- Serial1charmatch:
- $asm
- !PUSH R6
- !PUSH R16
- !PUSH R17
- !PUSH R18
- !PUSH R19
- !PUSH R22
- !PUSH R24
- !PUSH R25
- !PUSH R26
- !PUSH R27
- !PUSH R30
- !IN R24, SREG
- !PUSH R24
- $end asm
- $timeout = 3000
- Input #esp , Com2_str
- Clear Serialin1
- Esp_nadaje = 1
- ' Tuned with NoSave Tool 1.10
- $asm
- !POP R24
- !OUT SREG, R24
- !POP R30
- !POP R27
- !POP R26
- !POP R25
- !POP R24
- !POP R22
- !POP R19
- !POP R18
- !POP R17
- !POP R16
- !POP R6
- $end Asm
- Return
Próbowałem już przeróżnych ustawień UART i zawsze jest coś nie tak. Zasilanie też zmieniałem, połączenia sprawdzone milion razy. Kod specjalnie okroiłem do minimum aby wykluczyć inne rzeczy, które tam mają działać.
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: ATmega2560 - Konfiguracja 2x UART
ESP po resecie chyba wysyła dużo takich diagnostycznych danych z innym baudrate. Zrób mały test.
Przed tym Print #esp , "AT+RST" wyłącz przerwania tak że nie odbierze żadnych śmieci. Tak na próbę
Pisałem, że ja bym to podglądał tak jak na dołączonym obrazku
Przed tym Print #esp , "AT+RST" wyłącz przerwania tak że nie odbierze żadnych śmieci. Tak na próbę
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Disable Interrupts
- Print #esp , "AT+RST"
- Wait 2
- Enable Interrupts
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: ATmega2560 - Konfiguracja 2x UART
Zaraz sprawdzę, ale... Bartek, na UNO ESP działa, a na MEGA (drugi UART) nie chce?
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: ATmega2560 - Konfiguracja 2x UART
Czegoś trzeba być pewnym...i krok po kroku eliminować.
Zamiast tych rejestrów spróbuj odłożyć wszystkie...
Zamiast tych rejestrów spróbuj odłożyć wszystkie...
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Serial1charmatch:
- $pushall
- $timeout = 3000
- Input #esp , Com2_str
- Clear Serialin1
- Esp_nadaje = 1
- $popall
- Return
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: ATmega2560 - Konfiguracja 2x UART
Po zmianach nic się nie zmieniło...
Przed zmianami i po zmianach w kodzie to co "wypluwa" ESP wgląda tak samo.
*podłączyłem się dodatkowym konwerterem USB-UART poprzez rezystor 10k pod RX MEGI - w domu mam tylko diody prostownicze.
Po zmianach:
BASCOM wyrzucał mi błędy przy:
więc zmieniłem na:
Przed zmianami i po zmianach w kodzie to co "wypluwa" ESP wgląda tak samo.
*podłączyłem się dodatkowym konwerterem USB-UART poprzez rezystor 10k pod RX MEGI - w domu mam tylko diody prostownicze.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- AT+RST
- OK
- WIFI DISCONNECT
- ets Jan 8 2013,rst cause:1, boot mode:(3,7)
- load 0x40100000, len 23200, room 16
- tail 0
- chksum 0x72
- load 0x3ffe8000, len 948, room 8
- tail 12
- chksum 0x50
- ho 0 tail 12 room 4
- load 0x3ffe83b8, len 3888, room 12
- tail 4
- chksum 0x1d
- csum 0x1d
- rdÇ;$ÄźăŚ#ţ
- ready
- WIFI CONNECTED
- WIFI GOT IP
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- AT+RST
- OK
- WIFI DISCONNECT
- ets Jan 8 2013,rst cause:1, boot mode:(3,7)
- load 0x40100000, len 23200, room 16
- tail 0
- chksum 0x72
- load 0x3ffe8000, len 948, room 8
- tail 12
- chksum 0x50
- ho 0 tail 12 room 4
- load 0x3ffe83b8, len 3888, room 12
- tail 4
- chksum 0x1d
- csum 0x1d
- rdÇ;$ÄźăŚ#ţ
- ready
- WIFI CONNECTED
- WIFI GOT IP
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Serial1charmatch:
- $pushall
- $timeout = 3000
- Input #esp , Com2_str
- Clear Serialin1
- Esp_nadaje = 1
- $popall
- Return
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Serial1charmatch:
- Pushall
- $timeout = 3000
- Input #esp , Com2_str
- Clear Serialin1
- Esp_nadaje = 1
- Popall
- Return
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: ATmega2560 - Konfiguracja 2x UART
Trochę ciasno z czasem, żebym to podłączył. Do jednego projektu potrzebuję RTC na SPI a nie I2C więc napisałem obsługę MCP79520 dla bascomowych komend i działa
Teraz zabieram się za kolejny kod...ehhh
Spróbuj w Case Startup dopisać "Else" czyli jak wiadomość "WIFI GOT IP" nie została znaleziona to ma wysłać to co dostał do PC.
Czyli jak wyśle do PC "WIFI GOT IP" to znaczy że albo tam masz jedną spację więcej albo coś podobnego
Trzeba tego tylko poszukać. Masz drugi USART to korzystaj.
W tym Sub Serial1charmatch możesz zapalić LED na początku, zaraz za Pushall a zaraz przed Popall zgasić LED. Jak tam utknie to LED będzie świecić ciągle...No szukaj efektywnie
Teraz zabieram się za kolejny kod...ehhh
Spróbuj w Case Startup dopisać "Else" czyli jak wiadomość "WIFI GOT IP" nie została znaleziona to ma wysłać to co dostał do PC.
Czyli jak wyśle do PC "WIFI GOT IP" to znaczy że albo tam masz jedną spację więcej albo coś podobnego
Trzeba tego tylko poszukać. Masz drugi USART to korzystaj.
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Case Startup
- If Instr(com1_str , "WIFI GOT IP") > 0 Then
- Cmd = "AT+CIPSTART={034}TCP{034},{034}192.168.1.2{034},80"
- Print #esp , Cmd
- Cmd = "GET /receiver.php?key=1234"
- Cmd = Cmd + "&&id=1;11;2;22;3;33"
- Cmd = Cmd + "&type=water;volt;gas;volt;elec;volt"
- Cmd = Cmd + "&value=0.001;1.11;0.01;2.22;0.0005;3.33"
- Cmd = Cmd + "¤t=1;---;2;---;3;---"
- Cmd = Cmd + "&device=ip&name=PiCount_2_"
- Cmd = Cmd + "{032}HTTP/1.1{013}{010}"
- Cmd = Cmd + "Host:{032}192.168.1.2"
- Cmd = Cmd + "{013}{010}{013}{010}"
- Mem_state = State 'zapamiętaj, że zaczynamy
- State = Waiting
- Else
- Print #pc , Com1_str
- End If
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: ATmega2560 - Konfiguracja 2x UART
OK, już coś wiem, ale najciekawsze później
Po dodaniu:
nic nie wyrzuca na UART
Gdy dodałem LED, to program dochodzi do przerwania, LED się zaświeca i nie gaśnie - tak jak pisał Bartek tu paragram wisi.
Ale gdy skasowałem linię "Clear Serialin1" to program przechodzi dalej, LED gaśnie, ale niestety nadal to nic nie działa i ESP "wypluwa" z siebie komunikaty kończąc "WIFI GOT IP"
No i teraz najciekawsze...
Programy cały czas ładowałem poprzez USB - bootloader Arduino, ale coś mnie podkusiło aby wrzucić program "normalnie" czyli poprzez USBasp i tu zonk... ATmega2560 normalnie się programuje, ale nic nie działa i to dosłownie nic. Napisałem programik aby tylko LED sobie mrugał i nawet to nie działa, ale... ale gdy wrzucę bootloader Arduino poprzez Arduino IDE i później wrzucę swój mini programik to LED radośnie mruga.
O co tu chodzi? Programy załadowane poprzez USBasp nie działają - uC niby się programuje - ale bootloader mogę wgrać bez problemu przez USBasp w Arduino IDE
Testów ciąg dalszy... prosty programik z jednym UART wgrany przez USBasp (BASCOM IDE lub mkAVRcalculator) nie działa, ale gdy mam bootloader Arduino to ten sam program już działa - no prawie działa bo odpowiada tylko raz na zapytanie przez termianal - ten sam programik na Arduino UNO wgrywany przez UART (USB) lub USBasp działa poprawnie.
Zgłupiałem już totalnie, o co tu chodzi?
Czy z moją płytką (klon Arduino MEGA) czy ze mną jest coś nie tak?
PS
W mkAVRcalculator mam ustawiony zewnętrzny rezonator kwarcowy, wyłączony Interfejs JTAG oraz wyłączony wewnętrzny podział zegara przez 8
Po dodaniu:
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Else
- Print #pc , Com1_str
- End If
Gdy dodałem LED, to program dochodzi do przerwania, LED się zaświeca i nie gaśnie - tak jak pisał Bartek tu paragram wisi.
Ale gdy skasowałem linię "Clear Serialin1" to program przechodzi dalej, LED gaśnie, ale niestety nadal to nic nie działa i ESP "wypluwa" z siebie komunikaty kończąc "WIFI GOT IP"
No i teraz najciekawsze...
Programy cały czas ładowałem poprzez USB - bootloader Arduino, ale coś mnie podkusiło aby wrzucić program "normalnie" czyli poprzez USBasp i tu zonk... ATmega2560 normalnie się programuje, ale nic nie działa i to dosłownie nic. Napisałem programik aby tylko LED sobie mrugał i nawet to nie działa, ale... ale gdy wrzucę bootloader Arduino poprzez Arduino IDE i później wrzucę swój mini programik to LED radośnie mruga.
O co tu chodzi? Programy załadowane poprzez USBasp nie działają - uC niby się programuje - ale bootloader mogę wgrać bez problemu przez USBasp w Arduino IDE
Testów ciąg dalszy... prosty programik z jednym UART wgrany przez USBasp (BASCOM IDE lub mkAVRcalculator) nie działa, ale gdy mam bootloader Arduino to ten sam program już działa - no prawie działa bo odpowiada tylko raz na zapytanie przez termianal - ten sam programik na Arduino UNO wgrywany przez UART (USB) lub USBasp działa poprawnie.
Zgłupiałem już totalnie, o co tu chodzi?
Czy z moją płytką (klon Arduino MEGA) czy ze mną jest coś nie tak?
PS
W mkAVRcalculator mam ustawiony zewnętrzny rezonator kwarcowy, wyłączony Interfejs JTAG oraz wyłączony wewnętrzny podział zegara przez 8