找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1596|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

改編個(gè)MEGA1280單片機(jī)板子的BootLoader程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:90212 發(fā)表于 2024-5-12 09:17 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
以前玩C51單片機(jī),近來收了兩個(gè)avr的板子(MEGA1280和MEGA2560),想從BootLoader入手,看了本壇的 AVR之BOOTLOADER技術(shù)詳解發(fā)現(xiàn)了兩個(gè)語法錯(cuò)誤:
//每秒向PC機(jī)發(fā)送一個(gè)控制字符"C",等待控制字〈soh〉
while(uart_getchar() != XMODEM_SOH) //receive the start of Xmodem
{
    if(TIFR & 0x02) //timer0 over flow
    {
        if(++timercount > 67) //wait about 1 second
        {
            uart_putchar(XMODEM_RECIEVING_WAIT_CHAR); //send a "C"
            timercount = "0"; // timercount=0;
        }
        TIFR = "TIFR" | 0x02; //TIFR=TIFR| 0x02;
    }
}


或許是其他選項(xiàng)沒設(shè)置好,編譯仍然有錯(cuò)誤,求高手幫忙修改一下。
要求:最好就用ICCAVR,提供完整源代碼和配置說明至少保證MEGA1280或2560一個(gè)能使用,測試用以下軟件:


AVRUBD_ 1280.rar (491.43 KB, 下載次數(shù): 2)

1280配置用如下:


2560配置用如下:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:90212 發(fā)表于 2024-5-13 13:14 | 只看該作者
未能改編成功,請(qǐng)高手私信我
回復(fù)

使用道具 舉報(bào)

板凳
ID:879348 發(fā)表于 2024-5-13 15:15 | 只看該作者
你是編譯錯(cuò)誤還是功能沒有對(duì)呢,你說編譯錯(cuò)誤但是你自己已經(jīng)發(fā)現(xiàn)了,還有其他錯(cuò)誤嗎?沒有上傳錯(cuò)誤提示
回復(fù)

使用道具 舉報(bào)

地板
ID:123289 發(fā)表于 2024-5-14 21:52 | 只看該作者
我是這樣做的:
1、發(fā)送方:上電時(shí)。以自己的波特率一直不停地發(fā)送55H(AAH也行,目的發(fā)出0、1等距脈沖,讓對(duì)方同步,知道當(dāng)前的波特率),直到對(duì)方回一個(gè)標(biāo)記(例如你說的"C")。
2、規(guī)定時(shí)間內(nèi)無返回認(rèn)為,無設(shè)備連接。收到標(biāo)記,則握手成功。
3、接收方:監(jiān)察串行輸入腳有無輸入脈沖,如果能夠多次得到4個(gè)均勻間隔的脈沖,則認(rèn)為對(duì)方對(duì)自己進(jìn)行同步,計(jì)算它的間隔時(shí)間,從而得到通訊的波特率,并以此波特率加返回一個(gè)接收握手標(biāo)記(例如你說的"C")。
4、如果引腳上沒有脈沖輸入,或不是均勻脈沖,則結(jié)束監(jiān)察。
接下來雙方接可以正常通訊了。你想如何就如何。
實(shí)際應(yīng)用時(shí),隨時(shí)監(jiān)察的,不細(xì)述了。
回復(fù)

使用道具 舉報(bào)

5#
ID:90212 發(fā)表于 2024-5-14 22:16 | 只看該作者
wufa1986 發(fā)表于 2024-5-13 15:15
你是編譯錯(cuò)誤還是功能沒有對(duì)呢,你說編譯錯(cuò)誤但是你自己已經(jīng)發(fā)現(xiàn)了,還有其他錯(cuò)誤嗎?沒有上傳錯(cuò)誤提示

這個(gè)里面相當(dāng)多的坑,除了提到的兩個(gè)多余的雙引號(hào),轉(zhuǎn)義字符 '\' 全被搞成 '/'。現(xiàn)在編譯沒有錯(cuò)誤了不知道還需要怎么設(shè)置才能刷進(jìn)MEGA1280,只玩過keil,對(duì)ICCAVR不熟。請(qǐng)指點(diǎn):代碼修改如下: mega.rar (56.88 KB, 下載次數(shù): 2)

無需積分下載
回復(fù)

使用道具 舉報(bào)

6#
ID:90212 發(fā)表于 2024-5-14 22:37 | 只看該作者
當(dāng)把#include <iom128v.h>改為 #include <iom1280v.h>后,報(bào)OCR0、TCCR0、TIFR未定義
回復(fù)

使用道具 舉報(bào)

7#
ID:90212 發(fā)表于 2024-5-14 22:38 | 只看該作者
yzwzfyz 發(fā)表于 2024-5-14 21:52
我是這樣做的:
1、發(fā)送方:上電時(shí)。以自己的波特率一直不停地發(fā)送55H(AAH也行,目的發(fā)出0、1等距脈沖 ...

能否幫我改成MEGA1280可用的,成功了50如何?
回復(fù)

使用道具 舉報(bào)

8#
ID:176854 發(fā)表于 2024-5-15 08:53 | 只看該作者
OCR0 改為 OCR0A
TIFR  改為 TIFR0
TCCR = 0x0F 改為 TCCR0A = 0x20;TCCR0B = 0x07;
回復(fù)

使用道具 舉報(bào)

9#
ID:90212 發(fā)表于 2024-5-15 13:40 | 只看該作者
jjjjjjir 發(fā)表于 2024-5-15 08:53
OCR0 改為 OCR0A
TIFR  改為 TIFR0
TCCR = 0x0F 改為 TCCR0A = 0x20;TCCR0B = 0x07;

安裝您的指點(diǎn),編譯錯(cuò)誤都消除了,選項(xiàng)的配置是這樣設(shè)置嗎?


回復(fù)

使用道具 舉報(bào)

10#
ID:90212 發(fā)表于 2024-5-16 00:23 | 只看該作者
下載燒寫進(jìn)去能夠從串口發(fā)送出來正確的數(shù)據(jù),但是定時(shí)器設(shè)置有問題,很快就跳出了等待。把quit()替換為打印“A”,記錄如下:
  1. <blockquote>//初始化M128的T/C0,15ms自動(dòng)重載
復(fù)制代碼

[00:22:14.229]收←◆AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
[00:22:16.166]收←◆AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
[00:22:18.104]收←◆AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
[00:22:20.039]收←◆AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
[00:22:21.976]收←◆AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
[00:22:23.910]收←◆AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
[00:22:25.835]收←◆AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
[00:22:27.772]收←◆AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
[00:22:29.708]收←◆AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

平均隔2s 打印55個(gè)A出來。



回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表